1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.batch.core.step.builder;
17
18 import org.springframework.batch.core.Job;
19 import org.springframework.batch.core.Step;
20 import org.springframework.batch.core.launch.JobLauncher;
21 import org.springframework.batch.core.launch.support.SimpleJobLauncher;
22 import org.springframework.batch.core.step.job.JobParametersExtractor;
23 import org.springframework.batch.core.step.job.JobStep;
24
25
26
27
28
29
30
31
32
33 public class JobStepBuilder extends StepBuilderHelper<JobStepBuilder> {
34
35 private Job job;
36
37 private JobLauncher jobLauncher;
38
39 private JobParametersExtractor jobParametersExtractor;
40
41
42
43
44
45
46 public JobStepBuilder(StepBuilderHelper<?> parent) {
47 super(parent);
48 }
49
50
51
52
53
54
55
56 public JobStepBuilder job(Job job) {
57 this.job = job;
58 return this;
59 }
60
61
62
63
64
65
66
67 public JobStepBuilder launcher(JobLauncher jobLauncher) {
68 this.jobLauncher = jobLauncher;
69 return this;
70 }
71
72
73
74
75
76
77
78
79 public JobStepBuilder parametersExtractor(JobParametersExtractor jobParametersExtractor) {
80 this.jobParametersExtractor = jobParametersExtractor;
81 return this;
82 }
83
84
85
86
87
88
89 public Step build() {
90
91 JobStep step = new JobStep();
92 step.setName(getName());
93 super.enhance(step);
94 if (job != null) {
95 step.setJob(job);
96 }
97 if (jobParametersExtractor != null) {
98 step.setJobParametersExtractor(jobParametersExtractor);
99 }
100 if (jobLauncher == null) {
101 SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
102 jobLauncher.setJobRepository(getJobRepository());
103 try {
104 jobLauncher.afterPropertiesSet();
105 }
106 catch (Exception e) {
107 throw new StepBuilderException(e);
108 }
109 this.jobLauncher = jobLauncher;
110 }
111 step.setJobLauncher(jobLauncher);
112 try {
113 step.afterPropertiesSet();
114 }
115 catch (Exception e) {
116 throw new StepBuilderException(e);
117 }
118 return step;
119
120 }
121
122 }