SchedulerConstraint.java

package com.birbit.android.jobqueue.scheduling;

import android.support.annotation.Nullable;

import com.birbit.android.jobqueue.network.NetworkUtil;

/**
 * The constraints that are passed into Scheduler from JobManager
 */
public class SchedulerConstraint {
    private String uuid;
    private long delayInMs;
    private int networkStatus;
    private Long overrideDeadlineInMs;
    // arbitrary data that can be used by the scheduler
    private Object data;

    public SchedulerConstraint(String uuid) {
        this.uuid = uuid;
    }

    /**
     * The unique id assigned by the job manager. This is different from the ID that is assigned
     * by the third party scheduler.
     * @return The unique id assigned by the job manager
     */
    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    /**
     * The delay for the job
     * @return The delay before running the job
     */
    public long getDelayInMs() {
        return delayInMs;
    }

    public void setDelayInMs(long delayInMs) {
        this.delayInMs = delayInMs;
    }

    /**
     *
     * @return The network status required to run the job.
     */
    @NetworkUtil.NetworkStatus
    public int getNetworkStatus() {
        return networkStatus;
    }

    public void setNetworkStatus(int networkStatus) {
        this.networkStatus = networkStatus;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    /**
     * The deadline in ms after which the job should be run even if the constraints are not match.
     * <p>
     * If there is no deadline, this will be null.
     *
     * @return The time in ms until the constraints timeout
     */
    @Nullable
    public Long getOverrideDeadlineInMs() {
        return overrideDeadlineInMs;
    }

    public void setOverrideDeadlineInMs(Long overrideDeadlineInMs) {
        this.overrideDeadlineInMs = overrideDeadlineInMs;
    }

    @Override
    public String toString() {
        return "SchedulerConstraint{" +
                "uuid='" + uuid + '\'' +
                ", delayInMs=" + delayInMs +
                ", networkStatus=" + networkStatus +
                ", overrideDeadlineInMs=" + overrideDeadlineInMs +
                ", data=" + data +
                '}';
    }
}