EMMA Coverage Report (generated Thu Jan 24 13:37:04 CST 2013)
[all classes][org.springframework.batch.core]

COVERAGE SUMMARY FOR SOURCE FILE [JobParameters.java]

nameclass, %method, %block, %line, %
JobParameters.java100% (1/1)87%  (13/15)86%  (144/168)84%  (32.9/39)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JobParameters100% (1/1)87%  (13/15)86%  (144/168)84%  (32.9/39)
getDouble (String, double): double 0%   (0/1)0%   (0/11)0%   (0/3)
getString (String, String): String 0%   (0/1)0%   (0/11)0%   (0/3)
getDouble (String): double 100% (1/1)91%  (20/22)96%  (3.9/4)
JobParameters (): void 100% (1/1)100% (8/8)100% (3/3)
JobParameters (Map): void 100% (1/1)100% (9/9)100% (3/3)
equals (Object): boolean 100% (1/1)100% (19/19)100% (6/6)
getDate (String): Date 100% (1/1)100% (5/5)100% (1/1)
getDate (String, Date): Date 100% (1/1)100% (15/15)100% (3/3)
getLong (String): long 100% (1/1)100% (22/22)100% (4/4)
getLong (String, long): long 100% (1/1)100% (11/11)100% (3/3)
getParameters (): Map 100% (1/1)100% (6/6)100% (1/1)
getString (String): String 100% (1/1)100% (13/13)100% (2/2)
hashCode (): int 100% (1/1)100% (8/8)100% (1/1)
isEmpty (): boolean 100% (1/1)100% (4/4)100% (1/1)
toString (): String 100% (1/1)100% (4/4)100% (1/1)

1/*
2 * Copyright 2006-2007 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.io.Serializable;
20import java.util.Date;
21import java.util.LinkedHashMap;
22import java.util.Map;
23 
24/**
25 * Value object representing runtime parameters to a batch job. Because the
26 * parameters have no individual meaning outside of the JobParameters they are
27 * contained within, it is a value object rather than an entity. It is also
28 * extremely important that a parameters object can be reliably compared to
29 * another for equality, in order to determine if one JobParameters object
30 * equals another. Furthermore, because these parameters will need to be
31 * persisted, it is vital that the types added are restricted.
32 * 
33 * This class is immutable and therefore thread-safe.
34 * 
35 * @author Lucas Ward
36 * @since 1.0
37 */
38@SuppressWarnings("serial")
39public class JobParameters implements Serializable {
40 
41        private final Map<String,JobParameter> parameters;
42        
43        public JobParameters() {
44                this.parameters = new LinkedHashMap<String, JobParameter>();
45        }
46        
47        public JobParameters(Map<String,JobParameter> parameters) {
48                this.parameters = new LinkedHashMap<String,JobParameter>(parameters);
49        }
50        
51        /**
52         * Typesafe Getter for the Long represented by the provided key.
53         * 
54         * @param key The key to get a value for
55         * @return The <code>Long</code> value
56         */
57        public long getLong(String key){
58                if (!parameters.containsKey(key)) {
59                        return 0L;
60                }
61                Object value = parameters.get(key).getValue();
62                return value==null ? 0L : ((Long)value).longValue();
63        }
64        
65        /**
66         * Typesafe Getter for the Long represented by the provided key.  If the
67         * key does not exist, the default value will be returned.
68         * 
69         * @param key to return the value for
70         * @param defaultValue to return if the value doesn't exist
71         * @return the parameter represented by the provided key, defaultValue 
72         * otherwise.
73         */
74        public long getLong(String key, long defaultValue){
75                if(parameters.containsKey(key)){
76                        return getLong(key);
77                }
78                else{
79                        return defaultValue;
80                }
81        }
82 
83        /**
84         * Typesafe Getter for the String represented by the provided key.
85         * 
86         * @param key The key to get a value for
87         * @return The <code>String</code> value
88         */
89        public String getString(String key){
90                JobParameter value = parameters.get(key);
91                return value==null ? null : value.toString();
92        }
93        
94        /**
95         * Typesafe Getter for the String represented by the provided key.  If the
96         * key does not exist, the default value will be returned.
97         * 
98         * @param key to return the value for
99         * @param defaultValue to return if the value doesn't exist
100         * @return the parameter represented by the provided key, defaultValue 
101         * otherwise.
102         */
103        public String getString(String key, String defaultValue){
104                if(parameters.containsKey(key)){
105                        return getString(key);
106                }
107                else{
108                        return defaultValue;
109                }
110        }
111        
112        /**
113         * Typesafe Getter for the Long represented by the provided key.
114         * 
115         * @param key The key to get a value for
116         * @return The <code>Double</code> value
117         */
118        public double getDouble(String key){
119                if (!parameters.containsKey(key)) {
120                        return 0L;
121                }
122                Double value = (Double)parameters.get(key).getValue();
123                return value==null ? 0.0 : value.doubleValue();
124        }
125        
126        /**
127         * Typesafe Getter for the Double represented by the provided key.  If the
128         * key does not exist, the default value will be returned.
129         * 
130         * @param key to return the value for
131         * @param defaultValue to return if the value doesn't exist
132         * @return the parameter represented by the provided key, defaultValue 
133         * otherwise.
134         */
135        public double getDouble(String key, double defaultValue){
136                if(parameters.containsKey(key)){
137                        return getDouble(key);
138                }
139                else{
140                        return defaultValue;
141                }
142        }
143        
144        /**
145         * Typesafe Getter for the Date represented by the provided key.
146         * 
147         * @param key The key to get a value for
148         * @return The <code>java.util.Date</code> value
149         */
150        public Date getDate(String key){
151                return this.getDate(key,null);
152        }
153        
154        /**
155         * Typesafe Getter for the Date represented by the provided key.  If the
156         * key does not exist, the default value will be returned.
157         * 
158         * @param key to return the value for
159         * @param defaultValue to return if the value doesn't exist
160         * @return the parameter represented by the provided key, defaultValue 
161         * otherwise.
162         */
163        public Date getDate(String key, Date defaultValue){
164                if(parameters.containsKey(key)){
165                        return (Date)parameters.get(key).getValue();
166                }
167                else{
168                        return defaultValue;
169                }
170        }
171        
172        /**
173         * Get a map of all parameters, including string, long, and date. 
174         * 
175         * @return an unmodifiable map containing all parameters.
176         */
177        public Map<String, JobParameter> getParameters(){
178                return new LinkedHashMap<String, JobParameter>(parameters);
179        }
180        
181        /**
182         * @return true if the parameters is empty, false otherwise.
183         */
184        public boolean isEmpty(){
185                return parameters.isEmpty();
186        }
187        
188        @Override
189        public boolean equals(Object obj) {
190                if(obj instanceof JobParameters == false){
191                        return false;
192                }
193                
194                if(obj == this){
195                        return true;
196                }
197                
198                JobParameters rhs = (JobParameters)obj;
199                return this.parameters.equals(rhs.parameters); 
200        }
201        
202        @Override
203        public int hashCode() {
204                return 17 + 23 * parameters.hashCode();
205        }
206        
207        @Override
208        public String toString() {
209                return parameters.toString();
210        }
211}

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