// 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();
// 
// }


import io.github.jklingsporn.vertx.push.filters.Filter;
import io.vertx.core.json.JsonArray;
package io.github.jklingsporn.vertx.push;


/**
 * Created by jensklingsporn on 03.01.17.
 */
class PushToDestinationImpl extends AbstractPushStep implements PushToDestinationStep {


    public PushToDestinationImpl(PushMessageStep parent) {
        super(parent);
    }

    @Override
    public SendWithOptionsStep targetByFilter(Filter filter) {
        container().put("filters",filter.asJsonArray());
        return new SendWithOptionsStepImpl(this);
    }

    @Override
    public SendToSegmentStep targetBySegments(JsonArray includeSegments) {
        container().put("included_segments", includeSegments);
        return new SendToSegmentStepImpl(this);
    }

    @Override
// 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/PushToDestinationImpl.java
import io.github.jklingsporn.vertx.push.filters.Filter;
import io.vertx.core.json.JsonArray;

package io.github.jklingsporn.vertx.push;


/**
 * Created by jensklingsporn on 03.01.17.
 */
class PushToDestinationImpl extends AbstractPushStep implements PushToDestinationStep {


    public PushToDestinationImpl(PushMessageStep parent) {
        super(parent);
    }

    @Override
    public SendWithOptionsStep targetByFilter(Filter filter) {
        container().put("filters",filter.asJsonArray());
        return new SendWithOptionsStepImpl(this);
    }

    @Override
    public SendToSegmentStep targetBySegments(JsonArray includeSegments) {
        container().put("included_segments", includeSegments);
        return new SendToSegmentStepImpl(this);
    }

    @Override
    public SendWithOptionsStep targetByPlayerIds(JsonArray playerIds) {