// Path: jres-core/src/main/java/com/blacklocus/misc/NoNullsMap.java
// public class NoNullsMap<K, V> extends HashMap<K, V> {
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(1);
//         map.put(k1, v1);
//         return ImmutableMap.copyOf(map);
// 
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         map.put(k4, v4);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         map.put(k4, v4);
//         map.put(k5, v5);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     private NoNullsMap(int initialCapacity) {
//         super(initialCapacity);
//     }
// 
//     /**
//      * Ignores null keys or values. The key won't be added at all if it is null or its value is null.
//      */
//     @Override
//     public V put(K key, V value) {
//         return key != null && value != null ? super.put(key, value) : null;
//     }
// }


import com.blacklocus.misc.NoNullsMap;
import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.collect.ImmutableMap;
    }

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

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

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

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

    @Override
    public String queryType() {
        return "range";
    }

    @JsonValue
    public Object getJsonValue() {
        return ImmutableMap.of(
// Path: jres-core/src/main/java/com/blacklocus/misc/NoNullsMap.java
// public class NoNullsMap<K, V> extends HashMap<K, V> {
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(1);
//         map.put(k1, v1);
//         return ImmutableMap.copyOf(map);
// 
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         map.put(k4, v4);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     public static <K, V> ImmutableMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
//         NoNullsMap<K, V> map = new NoNullsMap<K, V>(3);
//         map.put(k1, v1);
//         map.put(k2, v2);
//         map.put(k3, v3);
//         map.put(k4, v4);
//         map.put(k5, v5);
//         return ImmutableMap.copyOf(map);
//     }
// 
//     private NoNullsMap(int initialCapacity) {
//         super(initialCapacity);
//     }
// 
//     /**
//      * Ignores null keys or values. The key won't be added at all if it is null or its value is null.
//      */
//     @Override
//     public V put(K key, V value) {
//         return key != null && value != null ? super.put(key, value) : null;
//     }
// }


// Path: jres-core/src/main/java/com/blacklocus/jres/request/search/query/JresRangeQuery.java
import com.blacklocus.misc.NoNullsMap;
import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.collect.ImmutableMap;

    }

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

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

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

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

    @Override
    public String queryType() {
        return "range";
    }

    @JsonValue
    public Object getJsonValue() {
        return ImmutableMap.of(
                field, NoNullsMap.of(