/*
 * Swagger of Opencellsoft Api
 * @#Introduction
 *
 * The version of the OpenAPI document: 7.3.1-SNAPSHOT
 * Contact: contact@opencellsoft.fr
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package org.openapitools.client.model;

import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.client.model.EntityReferenceWrapper;
import org.threeten.bp.OffsetDateTime;

/**
 * CustomFieldValue
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2019-09-13T10:03:17.753Z[GMT]")
public class CustomFieldValue {
  public static final String SERIALIZED_NAME_FROM = "from";
  @SerializedName(SERIALIZED_NAME_FROM)
  private OffsetDateTime from;

  public static final String SERIALIZED_NAME_TO = "to";
  @SerializedName(SERIALIZED_NAME_TO)
  private OffsetDateTime to;

  public static final String SERIALIZED_NAME_VALID = "valid";
  @SerializedName(SERIALIZED_NAME_VALID)
  private Boolean valid;

  public static final String SERIALIZED_NAME_EMPTY = "empty";
  @SerializedName(SERIALIZED_NAME_EMPTY)
  private Boolean empty;

  public static final String SERIALIZED_NAME_PRIORITY = "priority";
  @SerializedName(SERIALIZED_NAME_PRIORITY)
  private Integer priority;

  public static final String SERIALIZED_NAME_EXCESSIVE_IN_SIZE = "excessiveInSize";
  @SerializedName(SERIALIZED_NAME_EXCESSIVE_IN_SIZE)
  private Boolean excessiveInSize;

  public static final String SERIALIZED_NAME_VALUE_EMPTY = "valueEmpty";
  @SerializedName(SERIALIZED_NAME_VALUE_EMPTY)
  private Boolean valueEmpty;

  public static final String SERIALIZED_NAME_VALUE_EMPTY_FOR_GUI = "valueEmptyForGui";
  @SerializedName(SERIALIZED_NAME_VALUE_EMPTY_FOR_GUI)
  private Boolean valueEmptyForGui;

  public static final String SERIALIZED_NAME_ALL_ENTITIES = "allEntities";
  @SerializedName(SERIALIZED_NAME_ALL_ENTITIES)
  private List<EntityReferenceWrapper> allEntities = null;

  public static final String SERIALIZED_NAME_LIST_VALUE = "listValue";
  @SerializedName(SERIALIZED_NAME_LIST_VALUE)
  private List<Object> listValue = null;

  public static final String SERIALIZED_NAME_MAP_VALUE = "mapValue";
  @SerializedName(SERIALIZED_NAME_MAP_VALUE)
  private Map<String, Object> mapValue = null;

  public static final String SERIALIZED_NAME_VALUE = "value";
  @SerializedName(SERIALIZED_NAME_VALUE)
  private Object value;

  public static final String SERIALIZED_NAME_STRING = "string";
  @SerializedName(SERIALIZED_NAME_STRING)
  private String string;

  public static final String SERIALIZED_NAME_DATE = "date";
  @SerializedName(SERIALIZED_NAME_DATE)
  private OffsetDateTime date;

  public static final String SERIALIZED_NAME_LONG = "long";
  @SerializedName(SERIALIZED_NAME_LONG)
  private Long _long;

  public static final String SERIALIZED_NAME_DOUBLE = "double";
  @SerializedName(SERIALIZED_NAME_DOUBLE)
  private Double _double;

  public static final String SERIALIZED_NAME_BOOLEAN = "boolean";
  @SerializedName(SERIALIZED_NAME_BOOLEAN)
  private Boolean _boolean;

  public static final String SERIALIZED_NAME_ENTITY = "entity";
  @SerializedName(SERIALIZED_NAME_ENTITY)
  private EntityReferenceWrapper entity;

  public static final String SERIALIZED_NAME_LIST_STRING = "listString";
  @SerializedName(SERIALIZED_NAME_LIST_STRING)
  private List<String> listString = null;

  public static final String SERIALIZED_NAME_LIST_DATE = "listDate";
  @SerializedName(SERIALIZED_NAME_LIST_DATE)
  private List<OffsetDateTime> listDate = null;

  public static final String SERIALIZED_NAME_LIST_LONG = "listLong";
  @SerializedName(SERIALIZED_NAME_LIST_LONG)
  private List<Long> listLong = null;

  public static final String SERIALIZED_NAME_LIST_DOUBLE = "listDouble";
  @SerializedName(SERIALIZED_NAME_LIST_DOUBLE)
  private List<Double> listDouble = null;

  public static final String SERIALIZED_NAME_LIST_BOOLEAN = "listBoolean";
  @SerializedName(SERIALIZED_NAME_LIST_BOOLEAN)
  private List<Boolean> listBoolean = null;

  public static final String SERIALIZED_NAME_LIST_ENTITY = "listEntity";
  @SerializedName(SERIALIZED_NAME_LIST_ENTITY)
  private List<EntityReferenceWrapper> listEntity = null;

  public static final String SERIALIZED_NAME_MAP_STRING = "mapString";
  @SerializedName(SERIALIZED_NAME_MAP_STRING)
  private Map<String, String> mapString = null;

  public static final String SERIALIZED_NAME_MAP_DATE = "mapDate";
  @SerializedName(SERIALIZED_NAME_MAP_DATE)
  private Map<String, OffsetDateTime> mapDate = null;

  public static final String SERIALIZED_NAME_MAP_LONG = "mapLong";
  @SerializedName(SERIALIZED_NAME_MAP_LONG)
  private Map<String, Long> mapLong = null;

  public static final String SERIALIZED_NAME_MAP_DOUBLE = "mapDouble";
  @SerializedName(SERIALIZED_NAME_MAP_DOUBLE)
  private Map<String, Double> mapDouble = null;

  public static final String SERIALIZED_NAME_MAP_BOOLEAN = "mapBoolean";
  @SerializedName(SERIALIZED_NAME_MAP_BOOLEAN)
  private Map<String, Boolean> mapBoolean = null;

  public static final String SERIALIZED_NAME_MAP_ENTITY = "mapEntity";
  @SerializedName(SERIALIZED_NAME_MAP_ENTITY)
  private Map<String, EntityReferenceWrapper> mapEntity = null;

  public static final String SERIALIZED_NAME_SOURCE = "source";
  @SerializedName(SERIALIZED_NAME_SOURCE)
  private String source;


  public CustomFieldValue from(OffsetDateTime from) {
    
    this.from = from;
    return this;
  }

   /**
   * Get from
   * @return from
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public OffsetDateTime getFrom() {
    return from;
  }



  public void setFrom(OffsetDateTime from) {
    this.from = from;
  }


  public CustomFieldValue to(OffsetDateTime to) {
    
    this.to = to;
    return this;
  }

   /**
   * Get to
   * @return to
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public OffsetDateTime getTo() {
    return to;
  }



  public void setTo(OffsetDateTime to) {
    this.to = to;
  }


  public CustomFieldValue valid(Boolean valid) {
    
    this.valid = valid;
    return this;
  }

   /**
   * Get valid
   * @return valid
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getValid() {
    return valid;
  }



  public void setValid(Boolean valid) {
    this.valid = valid;
  }


  public CustomFieldValue empty(Boolean empty) {
    
    this.empty = empty;
    return this;
  }

   /**
   * Get empty
   * @return empty
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getEmpty() {
    return empty;
  }



  public void setEmpty(Boolean empty) {
    this.empty = empty;
  }


  public CustomFieldValue priority(Integer priority) {
    
    this.priority = priority;
    return this;
  }

   /**
   * Get priority
   * @return priority
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Integer getPriority() {
    return priority;
  }



  public void setPriority(Integer priority) {
    this.priority = priority;
  }


  public CustomFieldValue excessiveInSize(Boolean excessiveInSize) {
    
    this.excessiveInSize = excessiveInSize;
    return this;
  }

   /**
   * Get excessiveInSize
   * @return excessiveInSize
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getExcessiveInSize() {
    return excessiveInSize;
  }



  public void setExcessiveInSize(Boolean excessiveInSize) {
    this.excessiveInSize = excessiveInSize;
  }


  public CustomFieldValue valueEmpty(Boolean valueEmpty) {
    
    this.valueEmpty = valueEmpty;
    return this;
  }

   /**
   * Get valueEmpty
   * @return valueEmpty
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getValueEmpty() {
    return valueEmpty;
  }



  public void setValueEmpty(Boolean valueEmpty) {
    this.valueEmpty = valueEmpty;
  }


  public CustomFieldValue valueEmptyForGui(Boolean valueEmptyForGui) {
    
    this.valueEmptyForGui = valueEmptyForGui;
    return this;
  }

   /**
   * Get valueEmptyForGui
   * @return valueEmptyForGui
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getValueEmptyForGui() {
    return valueEmptyForGui;
  }



  public void setValueEmptyForGui(Boolean valueEmptyForGui) {
    this.valueEmptyForGui = valueEmptyForGui;
  }


  public CustomFieldValue allEntities(List<EntityReferenceWrapper> allEntities) {
    
    this.allEntities = allEntities;
    return this;
  }

  public CustomFieldValue addAllEntitiesItem(EntityReferenceWrapper allEntitiesItem) {
    if (this.allEntities == null) {
      this.allEntities = new ArrayList<EntityReferenceWrapper>();
    }
    this.allEntities.add(allEntitiesItem);
    return this;
  }

   /**
   * Get allEntities
   * @return allEntities
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<EntityReferenceWrapper> getAllEntities() {
    return allEntities;
  }



  public void setAllEntities(List<EntityReferenceWrapper> allEntities) {
    this.allEntities = allEntities;
  }


  public CustomFieldValue listValue(List<Object> listValue) {
    
    this.listValue = listValue;
    return this;
  }

  public CustomFieldValue addListValueItem(Object listValueItem) {
    if (this.listValue == null) {
      this.listValue = new ArrayList<Object>();
    }
    this.listValue.add(listValueItem);
    return this;
  }

   /**
   * Get listValue
   * @return listValue
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<Object> getListValue() {
    return listValue;
  }



  public void setListValue(List<Object> listValue) {
    this.listValue = listValue;
  }


  public CustomFieldValue mapValue(Map<String, Object> mapValue) {
    
    this.mapValue = mapValue;
    return this;
  }

  public CustomFieldValue putMapValueItem(String key, Object mapValueItem) {
    if (this.mapValue == null) {
      this.mapValue = new HashMap<String, Object>();
    }
    this.mapValue.put(key, mapValueItem);
    return this;
  }

   /**
   * Get mapValue
   * @return mapValue
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, Object> getMapValue() {
    return mapValue;
  }



  public void setMapValue(Map<String, Object> mapValue) {
    this.mapValue = mapValue;
  }


  public CustomFieldValue value(Object value) {
    
    this.value = value;
    return this;
  }

   /**
   * Get value
   * @return value
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Object getValue() {
    return value;
  }



  public void setValue(Object value) {
    this.value = value;
  }


  public CustomFieldValue string(String string) {
    
    this.string = string;
    return this;
  }

   /**
   * Get string
   * @return string
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getString() {
    return string;
  }



  public void setString(String string) {
    this.string = string;
  }


  public CustomFieldValue date(OffsetDateTime date) {
    
    this.date = date;
    return this;
  }

   /**
   * Get date
   * @return date
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public OffsetDateTime getDate() {
    return date;
  }



  public void setDate(OffsetDateTime date) {
    this.date = date;
  }


  public CustomFieldValue _long(Long _long) {
    
    this._long = _long;
    return this;
  }

   /**
   * Get _long
   * @return _long
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Long getLong() {
    return _long;
  }



  public void setLong(Long _long) {
    this._long = _long;
  }


  public CustomFieldValue _double(Double _double) {
    
    this._double = _double;
    return this;
  }

   /**
   * Get _double
   * @return _double
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Double getDouble() {
    return _double;
  }



  public void setDouble(Double _double) {
    this._double = _double;
  }


  public CustomFieldValue _boolean(Boolean _boolean) {
    
    this._boolean = _boolean;
    return this;
  }

   /**
   * Get _boolean
   * @return _boolean
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getBoolean() {
    return _boolean;
  }



  public void setBoolean(Boolean _boolean) {
    this._boolean = _boolean;
  }


  public CustomFieldValue entity(EntityReferenceWrapper entity) {
    
    this.entity = entity;
    return this;
  }

   /**
   * Get entity
   * @return entity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public EntityReferenceWrapper getEntity() {
    return entity;
  }



  public void setEntity(EntityReferenceWrapper entity) {
    this.entity = entity;
  }


  public CustomFieldValue listString(List<String> listString) {
    
    this.listString = listString;
    return this;
  }

  public CustomFieldValue addListStringItem(String listStringItem) {
    if (this.listString == null) {
      this.listString = new ArrayList<String>();
    }
    this.listString.add(listStringItem);
    return this;
  }

   /**
   * Get listString
   * @return listString
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<String> getListString() {
    return listString;
  }



  public void setListString(List<String> listString) {
    this.listString = listString;
  }


  public CustomFieldValue listDate(List<OffsetDateTime> listDate) {
    
    this.listDate = listDate;
    return this;
  }

  public CustomFieldValue addListDateItem(OffsetDateTime listDateItem) {
    if (this.listDate == null) {
      this.listDate = new ArrayList<OffsetDateTime>();
    }
    this.listDate.add(listDateItem);
    return this;
  }

   /**
   * Get listDate
   * @return listDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<OffsetDateTime> getListDate() {
    return listDate;
  }



  public void setListDate(List<OffsetDateTime> listDate) {
    this.listDate = listDate;
  }


  public CustomFieldValue listLong(List<Long> listLong) {
    
    this.listLong = listLong;
    return this;
  }

  public CustomFieldValue addListLongItem(Long listLongItem) {
    if (this.listLong == null) {
      this.listLong = new ArrayList<Long>();
    }
    this.listLong.add(listLongItem);
    return this;
  }

   /**
   * Get listLong
   * @return listLong
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<Long> getListLong() {
    return listLong;
  }



  public void setListLong(List<Long> listLong) {
    this.listLong = listLong;
  }


  public CustomFieldValue listDouble(List<Double> listDouble) {
    
    this.listDouble = listDouble;
    return this;
  }

  public CustomFieldValue addListDoubleItem(Double listDoubleItem) {
    if (this.listDouble == null) {
      this.listDouble = new ArrayList<Double>();
    }
    this.listDouble.add(listDoubleItem);
    return this;
  }

   /**
   * Get listDouble
   * @return listDouble
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<Double> getListDouble() {
    return listDouble;
  }



  public void setListDouble(List<Double> listDouble) {
    this.listDouble = listDouble;
  }


  public CustomFieldValue listBoolean(List<Boolean> listBoolean) {
    
    this.listBoolean = listBoolean;
    return this;
  }

  public CustomFieldValue addListBooleanItem(Boolean listBooleanItem) {
    if (this.listBoolean == null) {
      this.listBoolean = new ArrayList<Boolean>();
    }
    this.listBoolean.add(listBooleanItem);
    return this;
  }

   /**
   * Get listBoolean
   * @return listBoolean
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<Boolean> getListBoolean() {
    return listBoolean;
  }



  public void setListBoolean(List<Boolean> listBoolean) {
    this.listBoolean = listBoolean;
  }


  public CustomFieldValue listEntity(List<EntityReferenceWrapper> listEntity) {
    
    this.listEntity = listEntity;
    return this;
  }

  public CustomFieldValue addListEntityItem(EntityReferenceWrapper listEntityItem) {
    if (this.listEntity == null) {
      this.listEntity = new ArrayList<EntityReferenceWrapper>();
    }
    this.listEntity.add(listEntityItem);
    return this;
  }

   /**
   * Get listEntity
   * @return listEntity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<EntityReferenceWrapper> getListEntity() {
    return listEntity;
  }



  public void setListEntity(List<EntityReferenceWrapper> listEntity) {
    this.listEntity = listEntity;
  }


  public CustomFieldValue mapString(Map<String, String> mapString) {
    
    this.mapString = mapString;
    return this;
  }

  public CustomFieldValue putMapStringItem(String key, String mapStringItem) {
    if (this.mapString == null) {
      this.mapString = new HashMap<String, String>();
    }
    this.mapString.put(key, mapStringItem);
    return this;
  }

   /**
   * Get mapString
   * @return mapString
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, String> getMapString() {
    return mapString;
  }



  public void setMapString(Map<String, String> mapString) {
    this.mapString = mapString;
  }


  public CustomFieldValue mapDate(Map<String, OffsetDateTime> mapDate) {
    
    this.mapDate = mapDate;
    return this;
  }

  public CustomFieldValue putMapDateItem(String key, OffsetDateTime mapDateItem) {
    if (this.mapDate == null) {
      this.mapDate = new HashMap<String, OffsetDateTime>();
    }
    this.mapDate.put(key, mapDateItem);
    return this;
  }

   /**
   * Get mapDate
   * @return mapDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, OffsetDateTime> getMapDate() {
    return mapDate;
  }



  public void setMapDate(Map<String, OffsetDateTime> mapDate) {
    this.mapDate = mapDate;
  }


  public CustomFieldValue mapLong(Map<String, Long> mapLong) {
    
    this.mapLong = mapLong;
    return this;
  }

  public CustomFieldValue putMapLongItem(String key, Long mapLongItem) {
    if (this.mapLong == null) {
      this.mapLong = new HashMap<String, Long>();
    }
    this.mapLong.put(key, mapLongItem);
    return this;
  }

   /**
   * Get mapLong
   * @return mapLong
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, Long> getMapLong() {
    return mapLong;
  }



  public void setMapLong(Map<String, Long> mapLong) {
    this.mapLong = mapLong;
  }


  public CustomFieldValue mapDouble(Map<String, Double> mapDouble) {
    
    this.mapDouble = mapDouble;
    return this;
  }

  public CustomFieldValue putMapDoubleItem(String key, Double mapDoubleItem) {
    if (this.mapDouble == null) {
      this.mapDouble = new HashMap<String, Double>();
    }
    this.mapDouble.put(key, mapDoubleItem);
    return this;
  }

   /**
   * Get mapDouble
   * @return mapDouble
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, Double> getMapDouble() {
    return mapDouble;
  }



  public void setMapDouble(Map<String, Double> mapDouble) {
    this.mapDouble = mapDouble;
  }


  public CustomFieldValue mapBoolean(Map<String, Boolean> mapBoolean) {
    
    this.mapBoolean = mapBoolean;
    return this;
  }

  public CustomFieldValue putMapBooleanItem(String key, Boolean mapBooleanItem) {
    if (this.mapBoolean == null) {
      this.mapBoolean = new HashMap<String, Boolean>();
    }
    this.mapBoolean.put(key, mapBooleanItem);
    return this;
  }

   /**
   * Get mapBoolean
   * @return mapBoolean
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, Boolean> getMapBoolean() {
    return mapBoolean;
  }



  public void setMapBoolean(Map<String, Boolean> mapBoolean) {
    this.mapBoolean = mapBoolean;
  }


  public CustomFieldValue mapEntity(Map<String, EntityReferenceWrapper> mapEntity) {
    
    this.mapEntity = mapEntity;
    return this;
  }

  public CustomFieldValue putMapEntityItem(String key, EntityReferenceWrapper mapEntityItem) {
    if (this.mapEntity == null) {
      this.mapEntity = new HashMap<String, EntityReferenceWrapper>();
    }
    this.mapEntity.put(key, mapEntityItem);
    return this;
  }

   /**
   * Get mapEntity
   * @return mapEntity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Map<String, EntityReferenceWrapper> getMapEntity() {
    return mapEntity;
  }



  public void setMapEntity(Map<String, EntityReferenceWrapper> mapEntity) {
    this.mapEntity = mapEntity;
  }


  public CustomFieldValue source(String source) {
    
    this.source = source;
    return this;
  }

   /**
   * Get source
   * @return source
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getSource() {
    return source;
  }



  public void setSource(String source) {
    this.source = source;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    CustomFieldValue customFieldValue = (CustomFieldValue) o;
    return Objects.equals(this.from, customFieldValue.from) &&
        Objects.equals(this.to, customFieldValue.to) &&
        Objects.equals(this.valid, customFieldValue.valid) &&
        Objects.equals(this.empty, customFieldValue.empty) &&
        Objects.equals(this.priority, customFieldValue.priority) &&
        Objects.equals(this.excessiveInSize, customFieldValue.excessiveInSize) &&
        Objects.equals(this.valueEmpty, customFieldValue.valueEmpty) &&
        Objects.equals(this.valueEmptyForGui, customFieldValue.valueEmptyForGui) &&
        Objects.equals(this.allEntities, customFieldValue.allEntities) &&
        Objects.equals(this.listValue, customFieldValue.listValue) &&
        Objects.equals(this.mapValue, customFieldValue.mapValue) &&
        Objects.equals(this.value, customFieldValue.value) &&
        Objects.equals(this.string, customFieldValue.string) &&
        Objects.equals(this.date, customFieldValue.date) &&
        Objects.equals(this._long, customFieldValue._long) &&
        Objects.equals(this._double, customFieldValue._double) &&
        Objects.equals(this._boolean, customFieldValue._boolean) &&
        Objects.equals(this.entity, customFieldValue.entity) &&
        Objects.equals(this.listString, customFieldValue.listString) &&
        Objects.equals(this.listDate, customFieldValue.listDate) &&
        Objects.equals(this.listLong, customFieldValue.listLong) &&
        Objects.equals(this.listDouble, customFieldValue.listDouble) &&
        Objects.equals(this.listBoolean, customFieldValue.listBoolean) &&
        Objects.equals(this.listEntity, customFieldValue.listEntity) &&
        Objects.equals(this.mapString, customFieldValue.mapString) &&
        Objects.equals(this.mapDate, customFieldValue.mapDate) &&
        Objects.equals(this.mapLong, customFieldValue.mapLong) &&
        Objects.equals(this.mapDouble, customFieldValue.mapDouble) &&
        Objects.equals(this.mapBoolean, customFieldValue.mapBoolean) &&
        Objects.equals(this.mapEntity, customFieldValue.mapEntity) &&
        Objects.equals(this.source, customFieldValue.source);
  }

  @Override
  public int hashCode() {
    return Objects.hash(from, to, valid, empty, priority, excessiveInSize, valueEmpty, valueEmptyForGui, allEntities, listValue, mapValue, value, string, date, _long, _double, _boolean, entity, listString, listDate, listLong, listDouble, listBoolean, listEntity, mapString, mapDate, mapLong, mapDouble, mapBoolean, mapEntity, source);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class CustomFieldValue {\n");
    sb.append("    from: ").append(toIndentedString(from)).append("\n");
    sb.append("    to: ").append(toIndentedString(to)).append("\n");
    sb.append("    valid: ").append(toIndentedString(valid)).append("\n");
    sb.append("    empty: ").append(toIndentedString(empty)).append("\n");
    sb.append("    priority: ").append(toIndentedString(priority)).append("\n");
    sb.append("    excessiveInSize: ").append(toIndentedString(excessiveInSize)).append("\n");
    sb.append("    valueEmpty: ").append(toIndentedString(valueEmpty)).append("\n");
    sb.append("    valueEmptyForGui: ").append(toIndentedString(valueEmptyForGui)).append("\n");
    sb.append("    allEntities: ").append(toIndentedString(allEntities)).append("\n");
    sb.append("    listValue: ").append(toIndentedString(listValue)).append("\n");
    sb.append("    mapValue: ").append(toIndentedString(mapValue)).append("\n");
    sb.append("    value: ").append(toIndentedString(value)).append("\n");
    sb.append("    string: ").append(toIndentedString(string)).append("\n");
    sb.append("    date: ").append(toIndentedString(date)).append("\n");
    sb.append("    _long: ").append(toIndentedString(_long)).append("\n");
    sb.append("    _double: ").append(toIndentedString(_double)).append("\n");
    sb.append("    _boolean: ").append(toIndentedString(_boolean)).append("\n");
    sb.append("    entity: ").append(toIndentedString(entity)).append("\n");
    sb.append("    listString: ").append(toIndentedString(listString)).append("\n");
    sb.append("    listDate: ").append(toIndentedString(listDate)).append("\n");
    sb.append("    listLong: ").append(toIndentedString(listLong)).append("\n");
    sb.append("    listDouble: ").append(toIndentedString(listDouble)).append("\n");
    sb.append("    listBoolean: ").append(toIndentedString(listBoolean)).append("\n");
    sb.append("    listEntity: ").append(toIndentedString(listEntity)).append("\n");
    sb.append("    mapString: ").append(toIndentedString(mapString)).append("\n");
    sb.append("    mapDate: ").append(toIndentedString(mapDate)).append("\n");
    sb.append("    mapLong: ").append(toIndentedString(mapLong)).append("\n");
    sb.append("    mapDouble: ").append(toIndentedString(mapDouble)).append("\n");
    sb.append("    mapBoolean: ").append(toIndentedString(mapBoolean)).append("\n");
    sb.append("    mapEntity: ").append(toIndentedString(mapEntity)).append("\n");
    sb.append("    source: ").append(toIndentedString(source)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}

