package com.be.android.library.worker.base;

import com.be.android.library.worker.interfaces.Job;
import com.be.android.library.worker.interfaces.ParamsBuilder;
import com.be.android.library.worker.models.JobParams;

import java.util.Collection;

public interface JobConfigurator extends ParamsBuilder {
    JobConfigurator group(int groupId);
    JobConfigurator priority(int priority);
    JobConfigurator payload(Object payload);
    JobConfigurator tags(String... tags);
    JobConfigurator tags(Collection<String> tags);
    JobConfigurator addTag(String tag);
    JobConfigurator removeTag(String tag);
    JobConfigurator addExtra(String key, Object value);
    JobConfigurator removeExtra(String key);
    JobConfigurator flag(String flag, boolean value);
    JobConfigurator flag(String flag);
    JobConfigurator params(JobParams params);
    Job apply();
    Job getJob();
}

@@ -238,16 +238,38 @@
 lection;
+%0Aimport java.util.Map;
 %0A%0Apublic
@@ -672,32 +672,105 @@
  Object value);%0A
+    %3CT extends Map%3CString, Object%3E%3E JobConfigurator addExtras(T extras);%0A
     JobConfigura

set appropriate addExtras() version to JobConfigurator