View Javadoc

1   package com.atlassian.scheduler.core.status;
2   
3   import com.atlassian.scheduler.config.JobId;
4   import com.atlassian.scheduler.config.JobRunnerKey;
5   import com.atlassian.scheduler.config.RunMode;
6   import com.atlassian.scheduler.config.Schedule;
7   import com.atlassian.scheduler.status.JobDetails;
8   
9   import javax.annotation.Nonnull;
10  import javax.annotation.Nullable;
11  import java.io.Serializable;
12  import java.util.Date;
13  import java.util.Map;
14  
15  import static com.atlassian.scheduler.util.Safe.copy;
16  
17  /**
18   * A simple, concrete implementation of {@link JobDetails} that has the parameter map present.
19   *
20   * @since v1.0
21   */
22  public final class SimpleJobDetails extends AbstractJobDetails {
23      private final Map<String, Serializable> parameters;
24  
25      public SimpleJobDetails(final JobId jobId, final JobRunnerKey jobRunnerKey, final RunMode runMode,
26                              final Schedule schedule, @Nullable final Date nextRunTime, final byte[] rawParameters,
27                              @Nullable final Map<String, Serializable> parameters) {
28          super(jobId, jobRunnerKey, runMode, schedule, nextRunTime, rawParameters);
29          this.parameters = copy(parameters);
30      }
31  
32      @Override
33      @Nonnull
34      public Map<String, Serializable> getParameters() {
35          return parameters;
36      }
37  
38      @Override
39      public boolean isRunnable() {
40          return true;
41      }
42  
43      @Override
44      protected void appendToStringDetails(final StringBuilder sb) {
45          sb.append(",parameters=").append(parameters);
46      }
47  }
48