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

COVERAGE SUMMARY FOR SOURCE FILE [JobParametersBuilder.java]

nameclass, %method, %block, %line, %
JobParametersBuilder.java100% (1/1)100% (12/12)100% (131/131)100% (26/26)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JobParametersBuilder100% (1/1)100% (12/12)100% (131/131)100% (26/26)
JobParametersBuilder (): void 100% (1/1)100% (8/8)100% (3/3)
JobParametersBuilder (JobParameters): void 100% (1/1)100% (10/10)100% (3/3)
addDate (String, Date): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addDate (String, Date, boolean): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addDouble (String, Double): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addDouble (String, Double, boolean): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addLong (String, Long): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addLong (String, Long, boolean): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addParameter (String, JobParameter): JobParametersBuilder 100% (1/1)100% (11/11)100% (3/3)
addString (String, String): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
addString (String, String, boolean): JobParametersBuilder 100% (1/1)100% (12/12)100% (2/2)
toJobParameters (): JobParameters 100% (1/1)100% (6/6)100% (1/1)

1/*
2 * Copyright 2006-2013 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 */
16 
17package org.springframework.batch.core;
18 
19import java.util.Date;
20import java.util.LinkedHashMap;
21import java.util.Map;
22 
23import org.springframework.util.Assert;
24 
25/**
26 * Helper class for creating {@link JobParameters}. Useful because all
27 * {@link JobParameter} objects are immutable, and must be instantiated separately
28 * to ensure typesafety. Once created, it can be used in the
29 * same was a java.lang.StringBuilder (except, order is irrelevant), by adding
30 * various parameter types and creating a valid {@link JobParameters} once
31 * finished.<br/>
32 * <br/>
33 * Using the identifying flag indicates if the parameter will be used
34 * in the identification of a JobInstance.  That flag defaults to true.
35 *
36 * @author Lucas Ward
37 * @author Michael Minella
38 * @since 1.0
39 * @see JobParameters
40 * @see JobParameter
41 */
42public class JobParametersBuilder {
43 
44        private final Map<String, JobParameter> parameterMap;
45 
46        /**
47         * Default constructor. Initializes the builder with empty parameters.
48         */
49        public JobParametersBuilder() {
50 
51                this.parameterMap = new LinkedHashMap<String, JobParameter>();
52        }
53 
54        /**
55         * Copy constructor. Initializes the builder with the supplied parameters.
56         */
57        public JobParametersBuilder(JobParameters jobParameters) {
58                this.parameterMap = new LinkedHashMap<String, JobParameter>(jobParameters.getParameters());
59        }
60 
61        /**
62         * Add a new identifying String parameter for the given key.
63         *
64         * @param key - parameter accessor.
65         * @param parameter - runtime parameter
66         * @return a reference to this object.
67         */
68        public JobParametersBuilder addString(String key, String parameter) {
69                parameterMap.put(key, new JobParameter(parameter, true));
70                return this;
71        }
72 
73        /**
74         * Add a new String parameter for the given key.
75         *
76         * @param key - parameter accessor.
77         * @param parameter - runtime parameter
78         * @param identifying - indicates if the parameter is used as part of identifying a job instance
79         * @return a reference to this object.
80         */
81        public JobParametersBuilder addString(String key, String parameter, boolean identifying) {
82                parameterMap.put(key, new JobParameter(parameter, identifying));
83                return this;
84        }
85 
86        /**
87         * Add a new identifying {@link Date} parameter for the given key.
88         *
89         * @param key - parameter accessor.
90         * @param parameter - runtime parameter
91         * @return a reference to this object.
92         */
93        public JobParametersBuilder addDate(String key, Date parameter) {
94                parameterMap.put(key, new JobParameter(parameter, true));
95                return this;
96        }
97 
98        /**
99         * Add a new {@link Date} parameter for the given key.
100         *
101         * @param key - parameter accessor.
102         * @param parameter - runtime parameter
103         * @param identifying - indicates if the parameter is used as part of identifying a job instance
104         * @return a reference to this object.
105         */
106        public JobParametersBuilder addDate(String key, Date parameter, boolean identifying) {
107                parameterMap.put(key, new JobParameter(parameter, identifying));
108                return this;
109        }
110 
111        /**
112         * Add a new identifying Long parameter for the given key.
113         *
114         * @param key - parameter accessor.
115         * @param parameter - runtime parameter
116         * @return a reference to this object.
117         */
118        public JobParametersBuilder addLong(String key, Long parameter) {
119                parameterMap.put(key, new JobParameter(parameter, true));
120                return this;
121        }
122 
123        /**
124         * Add a new Long parameter for the given key.
125         *
126         * @param key - parameter accessor.
127         * @param parameter - runtime parameter
128         * @param identifying - indicates if the parameter is used as part of identifying a job instance
129         * @return a reference to this object.
130         */
131        public JobParametersBuilder addLong(String key, Long parameter, boolean identifying) {
132                parameterMap.put(key, new JobParameter(parameter, identifying));
133                return this;
134        }
135 
136        /**
137         * Add a new identifying Double parameter for the given key.
138         *
139         * @param key - parameter accessor.
140         * @param parameter - runtime parameter
141         * @return a reference to this object.
142         */
143        public JobParametersBuilder addDouble(String key, Double parameter) {
144                parameterMap.put(key, new JobParameter(parameter, true));
145                return this;
146        }
147 
148        /**
149         * Add a new Double parameter for the given key.
150         *
151         * @param key - parameter accessor.
152         * @param parameter - runtime parameter
153         * @param identifying - indicates if the parameter is used as part of identifying a job instance
154         * @return a reference to this object.
155         */
156        public JobParametersBuilder addDouble(String key, Double parameter, boolean identifying) {
157                parameterMap.put(key, new JobParameter(parameter, identifying));
158                return this;
159        }
160 
161        /**
162         * Conversion method that takes the current state of this builder and
163         * returns it as a JobruntimeParameters object.
164         *
165         * @return a valid {@link JobParameters} object.
166         */
167        public JobParameters toJobParameters() {
168                return new JobParameters(parameterMap);
169        }
170 
171        /**
172         * Add a new {@link JobParameter} for the given key.
173         *
174         * @param key - parameter accessor
175         * @param jobParameter - runtime parameter
176         * @return a reference to this object.
177         */
178        public JobParametersBuilder addParameter(String key, JobParameter jobParameter) {
179                Assert.notNull(jobParameter, "JobParameter must not be null");
180                parameterMap.put(key, jobParameter);
181                return this;
182        }
183}

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