// Path: src/main/java/io/github/jklingsporn/vertx/push/filters/Filter.java
// public interface Filter {
// 
//     Filter and(Filter other);
// 
//     Filter or(Filter other);
// 
//     JsonArray asJsonArray();
// 
//     JsonObject content();
// 
// }
// 
// Path: src/main/java/io/github/jklingsporn/vertx/push/filters/FilterImpl.java
// public class FilterImpl implements Filter{
// 
//     private static final JsonObject OR = new JsonObject().put("operator", "OR");
//     private final JsonArray contents = new JsonArray();
//     private final JsonObject content = new JsonObject();
// 
//     public FilterImpl(String field) {
//         content().put("field",field);
//         contents.add(content);
//     }
// 
//     @Override
//     public Filter and(Filter other) {
//         contents.add(other.content());
//         return this;
//     }
// 
//     @Override
//     public Filter or(Filter other) {
//         contents.add(OR).add(other.content());
//         return this;
//     }
// 
//     @Override
//     public JsonArray asJsonArray() {
//         return contents;
//     }
// 
//     @Override
//     public JsonObject content() {
//         return content;
//     }
// }


import io.github.jklingsporn.vertx.push.filters.Filter;
import io.github.jklingsporn.vertx.push.filters.FilterImpl;
package io.github.jklingsporn.vertx.push.filters.relations;


/**
 * Created by jensklingsporn on 04.01.17.
 */
public interface LessRelation<X> extends Relation {

    /**
     * Compare the user's value against this value using a less-relation.
     * The unit of the value depends on the chosen <code>Filter</code>.
     * @param value
     * @return a Filter
     */
    default Filter less(X value){
// Path: src/main/java/io/github/jklingsporn/vertx/push/filters/Filter.java
// public interface Filter {
// 
//     Filter and(Filter other);
// 
//     Filter or(Filter other);
// 
//     JsonArray asJsonArray();
// 
//     JsonObject content();
// 
// }
// 
// Path: src/main/java/io/github/jklingsporn/vertx/push/filters/FilterImpl.java
// public class FilterImpl implements Filter{
// 
//     private static final JsonObject OR = new JsonObject().put("operator", "OR");
//     private final JsonArray contents = new JsonArray();
//     private final JsonObject content = new JsonObject();
// 
//     public FilterImpl(String field) {
//         content().put("field",field);
//         contents.add(content);
//     }
// 
//     @Override
//     public Filter and(Filter other) {
//         contents.add(other.content());
//         return this;
//     }
// 
//     @Override
//     public Filter or(Filter other) {
//         contents.add(OR).add(other.content());
//         return this;
//     }
// 
//     @Override
//     public JsonArray asJsonArray() {
//         return contents;
//     }
// 
//     @Override
//     public JsonObject content() {
//         return content;
//     }
// }


// Path: src/main/java/io/github/jklingsporn/vertx/push/filters/relations/LessRelation.java
import io.github.jklingsporn.vertx.push.filters.Filter;
import io.github.jklingsporn.vertx.push.filters.FilterImpl;

package io.github.jklingsporn.vertx.push.filters.relations;


/**
 * Created by jensklingsporn on 04.01.17.
 */
public interface LessRelation<X> extends Relation {

    /**
     * Compare the user's value against this value using a less-relation.
     * The unit of the value depends on the chosen <code>Filter</code>.
     * @param value
     * @return a Filter
     */
    default Filter less(X value){
        FilterImpl filter = new FilterImpl(getContext());