1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.batch.admin.web.resource;
18
19 import org.springframework.batch.admin.domain.DetailedJobInfo;
20 import org.springframework.batch.admin.domain.DetailedJobInfoResource;
21 import org.springframework.batch.admin.domain.JobExecutionInfo;
22 import org.springframework.batch.admin.domain.JobExecutionInfoResource;
23 import org.springframework.batch.admin.web.BatchJobsController;
24 import org.springframework.hateoas.mvc.ResourceAssemblerSupport;
25
26
27
28
29
30
31
32 public class DetailedJobInfoResourceAssembler extends
33 ResourceAssemblerSupport<DetailedJobInfo, DetailedJobInfoResource> {
34
35 private JobExecutionInfoResourceAssembler jobExecutionInfoResourceAssembler = new JobExecutionInfoResourceAssembler();
36
37 public DetailedJobInfoResourceAssembler() {
38 super(BatchJobsController.class, DetailedJobInfoResource.class);
39 }
40
41 @Override
42 public DetailedJobInfoResource toResource(DetailedJobInfo entity) {
43 return createResourceWithId(entity.getName(), entity);
44 }
45
46 @Override
47 protected DetailedJobInfoResource instantiateResource(DetailedJobInfo entity) {
48 JobExecutionInfoResource jobExecutionInfoResource;
49 if (entity.getLastExecutionInfo() != null) {
50 JobExecutionInfo jobExecutionInfo = new JobExecutionInfo(
51 entity.getLastExecutionInfo().getJobExecution(),
52 entity.getLastExecutionInfo().getTimeZone());
53 jobExecutionInfoResource = jobExecutionInfoResourceAssembler.instantiateResource(jobExecutionInfo);
54 }
55 else {
56 jobExecutionInfoResource = null;
57 }
58 return new DetailedJobInfoResource(entity.getName(), entity.getExecutionCount(),
59 entity.isLaunchable(), entity.isIncrementable(), jobExecutionInfoResource);
60 }
61 }