ListSegmentsRequestImpl.java 2.49 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.commons.lang.StringUtils
 */
package com.day.cq.analytics.testandtarget.impl;

import com.day.cq.analytics.testandtarget.ListSegmentsRequest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;

public class ListSegmentsRequestImpl
extends ListSegmentsRequest {
    public static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    private Date modifiedFrom = null;
    private Date modifiedTo = null;
    private Date deletedFrom = null;
    private Date deletedTo = null;
    private List<String> segmentStatuses = new ArrayList<String>();

    public ListSegmentsRequestImpl modifiedFrom(Date modifiedFrom) {
        this.modifiedFrom = modifiedFrom;
        return this;
    }

    public ListSegmentsRequestImpl modifiedTo(Date modifiedTo) {
        this.modifiedTo = modifiedTo;
        return this;
    }

    public ListSegmentsRequestImpl deletedFrom(Date deletedFrom) {
        this.deletedFrom = deletedFrom;
        return this;
    }

    public ListSegmentsRequestImpl deletedTo(Date deletedTo) {
        this.deletedTo = deletedTo;
        return this;
    }

    public ListSegmentsRequestImpl withStatus(String status) {
        if (!this.segmentStatuses.contains(status)) {
            this.segmentStatuses.add(status);
        }
        return this;
    }

    public Map<String, String> getParameters() {
        Date toDate;
        HashMap<String, String> parameters = new HashMap<String, String>();
        if (this.modifiedFrom != null) {
            toDate = this.modifiedTo != null ? this.modifiedTo : Calendar.getInstance().getTime();
            String modifiedAtValue = dateFormat.format(this.modifiedFrom) + "/" + dateFormat.format(toDate);
            parameters.put("modifiedAt", modifiedAtValue);
        }
        if (this.deletedFrom != null) {
            toDate = this.deletedTo != null ? this.deletedTo : Calendar.getInstance().getTime();
            String deletedAtValue = dateFormat.format(this.deletedFrom) + "/" + dateFormat.format(toDate);
            parameters.put("deletedAt", deletedAtValue);
        }
        if (this.segmentStatuses.size() > 0) {
            parameters.put("status", StringUtils.join(this.segmentStatuses, (String)","));
        }
        return parameters;
    }
}