EMMA Coverage Report (generated Thu May 22 12:08:10 CDT 2014)
[all classes][org.springframework.batch.core.step.builder]

COVERAGE SUMMARY FOR SOURCE FILE [JobStepBuilder.java]

nameclass, %method, %block, %line, %
JobStepBuilder.java100% (1/1)100% (5/5)85%  (70/82)86%  (25/29)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JobStepBuilder100% (1/1)100% (5/5)85%  (70/82)86%  (25/29)
build (): Step 100% (1/1)81%  (51/63)81%  (17/21)
JobStepBuilder (StepBuilderHelper): void 100% (1/1)100% (4/4)100% (2/2)
job (Job): JobStepBuilder 100% (1/1)100% (5/5)100% (2/2)
launcher (JobLauncher): JobStepBuilder 100% (1/1)100% (5/5)100% (2/2)
parametersExtractor (JobParametersExtractor): JobStepBuilder 100% (1/1)100% (5/5)100% (2/2)

1/*
2 * Copyright 2006-2011 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.batch.core.step.builder;
17 
18import org.springframework.batch.core.Job;
19import org.springframework.batch.core.Step;
20import org.springframework.batch.core.launch.JobLauncher;
21import org.springframework.batch.core.launch.support.SimpleJobLauncher;
22import org.springframework.batch.core.step.job.JobParametersExtractor;
23import org.springframework.batch.core.step.job.JobStep;
24 
25/**
26 * A step builder for {@link JobStep} instances. A job step executes a nested {@link Job} with parameters taken from the
27 * parent job or from the step execution.
28 * 
29 * @author Dave Syer
30 * 
31 * @since 2.2
32 */
33public class JobStepBuilder extends StepBuilderHelper<JobStepBuilder> {
34 
35        private Job job;
36 
37        private JobLauncher jobLauncher;
38 
39        private JobParametersExtractor jobParametersExtractor;
40 
41        /**
42         * Create a new builder initialized with any properties in the parent. The parent is copied, so it can be re-used.
43         * 
44         * @param parent a parent helper containing common step properties
45         */
46        public JobStepBuilder(StepBuilderHelper<?> parent) {
47                super(parent);
48        }
49 
50        /**
51         * Provide a job to execute during the step.
52         * 
53         * @param job the job to execute
54         * @return this for fluent chaining
55         */
56        public JobStepBuilder job(Job job) {
57                this.job = job;
58                return this;
59        }
60 
61        /**
62         * Add a job launcher. Defaults to a simple job launcher.
63         * 
64         * @param jobLauncher the job launcher to use
65         * @return this for fluent chaining
66         */
67        public JobStepBuilder launcher(JobLauncher jobLauncher) {
68                this.jobLauncher = jobLauncher;
69                return this;
70        }
71 
72        /**
73         * Provide a job parameters extractor. Useful for extracting job parameters from the parent step execution context
74         * or job parameters.
75         * 
76         * @param jobParametersExtractor the job parameters extractor to use
77         * @return this for fluent chaining
78         */
79        public JobStepBuilder parametersExtractor(JobParametersExtractor jobParametersExtractor) {
80                this.jobParametersExtractor = jobParametersExtractor;
81                return this;
82        }
83 
84        /**
85         * Build a step from the job provided.
86         * 
87         * @return a new job step
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}

[all classes][org.springframework.batch.core.step.builder]
EMMA 2.0.5312 (C) Vladimir Roubtsov