package com.mvc.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FileUploadExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FileUploadExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andFilenameIsNull() {
            addCriterion("filename is null");
            return (Criteria) this;
        }

        public Criteria andFilenameIsNotNull() {
            addCriterion("filename is not null");
            return (Criteria) this;
        }

        public Criteria andFilenameEqualTo(String value) {
            addCriterion("filename =", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameNotEqualTo(String value) {
            addCriterion("filename <>", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameGreaterThan(String value) {
            addCriterion("filename >", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameGreaterThanOrEqualTo(String value) {
            addCriterion("filename >=", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameLessThan(String value) {
            addCriterion("filename <", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameLessThanOrEqualTo(String value) {
            addCriterion("filename <=", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameLike(String value) {
            addCriterion("filename like", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameNotLike(String value) {
            addCriterion("filename not like", value, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameIn(List<String> values) {
            addCriterion("filename in", values, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameNotIn(List<String> values) {
            addCriterion("filename not in", values, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameBetween(String value1, String value2) {
            addCriterion("filename between", value1, value2, "filename");
            return (Criteria) this;
        }

        public Criteria andFilenameNotBetween(String value1, String value2) {
            addCriterion("filename not between", value1, value2, "filename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameIsNull() {
            addCriterion("filetypename is null");
            return (Criteria) this;
        }

        public Criteria andFiletypenameIsNotNull() {
            addCriterion("filetypename is not null");
            return (Criteria) this;
        }

        public Criteria andFiletypenameEqualTo(String value) {
            addCriterion("filetypename =", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameNotEqualTo(String value) {
            addCriterion("filetypename <>", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameGreaterThan(String value) {
            addCriterion("filetypename >", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameGreaterThanOrEqualTo(String value) {
            addCriterion("filetypename >=", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameLessThan(String value) {
            addCriterion("filetypename <", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameLessThanOrEqualTo(String value) {
            addCriterion("filetypename <=", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameLike(String value) {
            addCriterion("filetypename like", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameNotLike(String value) {
            addCriterion("filetypename not like", value, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameIn(List<String> values) {
            addCriterion("filetypename in", values, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameNotIn(List<String> values) {
            addCriterion("filetypename not in", values, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameBetween(String value1, String value2) {
            addCriterion("filetypename between", value1, value2, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypenameNotBetween(String value1, String value2) {
            addCriterion("filetypename not between", value1, value2, "filetypename");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeIsNull() {
            addCriterion("filetypecode is null");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeIsNotNull() {
            addCriterion("filetypecode is not null");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeEqualTo(String value) {
            addCriterion("filetypecode =", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeNotEqualTo(String value) {
            addCriterion("filetypecode <>", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeGreaterThan(String value) {
            addCriterion("filetypecode >", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeGreaterThanOrEqualTo(String value) {
            addCriterion("filetypecode >=", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeLessThan(String value) {
            addCriterion("filetypecode <", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeLessThanOrEqualTo(String value) {
            addCriterion("filetypecode <=", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeLike(String value) {
            addCriterion("filetypecode like", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeNotLike(String value) {
            addCriterion("filetypecode not like", value, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeIn(List<String> values) {
            addCriterion("filetypecode in", values, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeNotIn(List<String> values) {
            addCriterion("filetypecode not in", values, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeBetween(String value1, String value2) {
            addCriterion("filetypecode between", value1, value2, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andFiletypecodeNotBetween(String value1, String value2) {
            addCriterion("filetypecode not between", value1, value2, "filetypecode");
            return (Criteria) this;
        }

        public Criteria andVersionIsNull() {
            addCriterion("version is null");
            return (Criteria) this;
        }

        public Criteria andVersionIsNotNull() {
            addCriterion("version is not null");
            return (Criteria) this;
        }

        public Criteria andVersionEqualTo(String value) {
            addCriterion("version =", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotEqualTo(String value) {
            addCriterion("version <>", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThan(String value) {
            addCriterion("version >", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThanOrEqualTo(String value) {
            addCriterion("version >=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThan(String value) {
            addCriterion("version <", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThanOrEqualTo(String value) {
            addCriterion("version <=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLike(String value) {
            addCriterion("version like", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotLike(String value) {
            addCriterion("version not like", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionIn(List<String> values) {
            addCriterion("version in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotIn(List<String> values) {
            addCriterion("version not in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionBetween(String value1, String value2) {
            addCriterion("version between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotBetween(String value1, String value2) {
            addCriterion("version not between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andFilepathIsNull() {
            addCriterion("filepath is null");
            return (Criteria) this;
        }

        public Criteria andFilepathIsNotNull() {
            addCriterion("filepath is not null");
            return (Criteria) this;
        }

        public Criteria andFilepathEqualTo(String value) {
            addCriterion("filepath =", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathNotEqualTo(String value) {
            addCriterion("filepath <>", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathGreaterThan(String value) {
            addCriterion("filepath >", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathGreaterThanOrEqualTo(String value) {
            addCriterion("filepath >=", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathLessThan(String value) {
            addCriterion("filepath <", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathLessThanOrEqualTo(String value) {
            addCriterion("filepath <=", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathLike(String value) {
            addCriterion("filepath like", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathNotLike(String value) {
            addCriterion("filepath not like", value, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathIn(List<String> values) {
            addCriterion("filepath in", values, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathNotIn(List<String> values) {
            addCriterion("filepath not in", values, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathBetween(String value1, String value2) {
            addCriterion("filepath between", value1, value2, "filepath");
            return (Criteria) this;
        }

        public Criteria andFilepathNotBetween(String value1, String value2) {
            addCriterion("filepath not between", value1, value2, "filepath");
            return (Criteria) this;
        }

        public Criteria andUploadtimeIsNull() {
            addCriterion("uploadtime is null");
            return (Criteria) this;
        }

        public Criteria andUploadtimeIsNotNull() {
            addCriterion("uploadtime is not null");
            return (Criteria) this;
        }

        public Criteria andUploadtimeEqualTo(Date value) {
            addCriterion("uploadtime =", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeNotEqualTo(Date value) {
            addCriterion("uploadtime <>", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeGreaterThan(Date value) {
            addCriterion("uploadtime >", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("uploadtime >=", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeLessThan(Date value) {
            addCriterion("uploadtime <", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeLessThanOrEqualTo(Date value) {
            addCriterion("uploadtime <=", value, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeIn(List<Date> values) {
            addCriterion("uploadtime in", values, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeNotIn(List<Date> values) {
            addCriterion("uploadtime not in", values, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeBetween(Date value1, Date value2) {
            addCriterion("uploadtime between", value1, value2, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadtimeNotBetween(Date value1, Date value2) {
            addCriterion("uploadtime not between", value1, value2, "uploadtime");
            return (Criteria) this;
        }

        public Criteria andUploadmanIsNull() {
            addCriterion("uploadman is null");
            return (Criteria) this;
        }

        public Criteria andUploadmanIsNotNull() {
            addCriterion("uploadman is not null");
            return (Criteria) this;
        }

        public Criteria andUploadmanEqualTo(String value) {
            addCriterion("uploadman =", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanNotEqualTo(String value) {
            addCriterion("uploadman <>", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanGreaterThan(String value) {
            addCriterion("uploadman >", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanGreaterThanOrEqualTo(String value) {
            addCriterion("uploadman >=", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanLessThan(String value) {
            addCriterion("uploadman <", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanLessThanOrEqualTo(String value) {
            addCriterion("uploadman <=", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanLike(String value) {
            addCriterion("uploadman like", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanNotLike(String value) {
            addCriterion("uploadman not like", value, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanIn(List<String> values) {
            addCriterion("uploadman in", values, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanNotIn(List<String> values) {
            addCriterion("uploadman not in", values, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanBetween(String value1, String value2) {
            addCriterion("uploadman between", value1, value2, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadmanNotBetween(String value1, String value2) {
            addCriterion("uploadman not between", value1, value2, "uploadman");
            return (Criteria) this;
        }

        public Criteria andUploadsizeIsNull() {
            addCriterion("uploadsize is null");
            return (Criteria) this;
        }

        public Criteria andUploadsizeIsNotNull() {
            addCriterion("uploadsize is not null");
            return (Criteria) this;
        }

        public Criteria andUploadsizeEqualTo(Integer value) {
            addCriterion("uploadsize =", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeNotEqualTo(Integer value) {
            addCriterion("uploadsize <>", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeGreaterThan(Integer value) {
            addCriterion("uploadsize >", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeGreaterThanOrEqualTo(Integer value) {
            addCriterion("uploadsize >=", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeLessThan(Integer value) {
            addCriterion("uploadsize <", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeLessThanOrEqualTo(Integer value) {
            addCriterion("uploadsize <=", value, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeIn(List<Integer> values) {
            addCriterion("uploadsize in", values, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeNotIn(List<Integer> values) {
            addCriterion("uploadsize not in", values, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeBetween(Integer value1, Integer value2) {
            addCriterion("uploadsize between", value1, value2, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadsizeNotBetween(Integer value1, Integer value2) {
            addCriterion("uploadsize not between", value1, value2, "uploadsize");
            return (Criteria) this;
        }

        public Criteria andUploadpassIsNull() {
            addCriterion("uploadpass is null");
            return (Criteria) this;
        }

        public Criteria andUploadpassIsNotNull() {
            addCriterion("uploadpass is not null");
            return (Criteria) this;
        }

        public Criteria andUploadpassEqualTo(String value) {
            addCriterion("uploadpass =", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassNotEqualTo(String value) {
            addCriterion("uploadpass <>", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassGreaterThan(String value) {
            addCriterion("uploadpass >", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassGreaterThanOrEqualTo(String value) {
            addCriterion("uploadpass >=", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassLessThan(String value) {
            addCriterion("uploadpass <", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassLessThanOrEqualTo(String value) {
            addCriterion("uploadpass <=", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassLike(String value) {
            addCriterion("uploadpass like", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassNotLike(String value) {
            addCriterion("uploadpass not like", value, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassIn(List<String> values) {
            addCriterion("uploadpass in", values, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassNotIn(List<String> values) {
            addCriterion("uploadpass not in", values, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassBetween(String value1, String value2) {
            addCriterion("uploadpass between", value1, value2, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andUploadpassNotBetween(String value1, String value2) {
            addCriterion("uploadpass not between", value1, value2, "uploadpass");
            return (Criteria) this;
        }

        public Criteria andFileinfoIsNull() {
            addCriterion("fileinfo is null");
            return (Criteria) this;
        }

        public Criteria andFileinfoIsNotNull() {
            addCriterion("fileinfo is not null");
            return (Criteria) this;
        }

        public Criteria andFileinfoEqualTo(String value) {
            addCriterion("fileinfo =", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoNotEqualTo(String value) {
            addCriterion("fileinfo <>", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoGreaterThan(String value) {
            addCriterion("fileinfo >", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoGreaterThanOrEqualTo(String value) {
            addCriterion("fileinfo >=", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoLessThan(String value) {
            addCriterion("fileinfo <", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoLessThanOrEqualTo(String value) {
            addCriterion("fileinfo <=", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoLike(String value) {
            addCriterion("fileinfo like", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoNotLike(String value) {
            addCriterion("fileinfo not like", value, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoIn(List<String> values) {
            addCriterion("fileinfo in", values, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoNotIn(List<String> values) {
            addCriterion("fileinfo not in", values, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoBetween(String value1, String value2) {
            addCriterion("fileinfo between", value1, value2, "fileinfo");
            return (Criteria) this;
        }

        public Criteria andFileinfoNotBetween(String value1, String value2) {
            addCriterion("fileinfo not between", value1, value2, "fileinfo");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}