EMMA Coverage Report (generated Tue May 06 07:29:23 PDT 2008)
[all classes][org.springframework.batch.core.repository.dao]

COVERAGE SUMMARY FOR SOURCE FILE [MapJobExecutionDao.java]

nameclass, %method, %block, %line, %
MapJobExecutionDao.java100% (1/1)100% (8/8)97%  (136/140)95%  (39/41)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MapJobExecutionDao100% (1/1)100% (8/8)97%  (136/140)95%  (39/41)
getLastJobExecution (JobInstance): JobExecution 100% (1/1)92%  (33/36)82%  (9/11)
saveJobExecution (JobExecution): void 100% (1/1)96%  (26/27)99%  (6/6)
<static initializer> 100% (1/1)100% (3/3)100% (1/1)
MapJobExecutionDao (): void 100% (1/1)100% (3/3)100% (1/1)
clear (): void 100% (1/1)100% (3/3)100% (2/2)
findJobExecutions (JobInstance): List 100% (1/1)100% (27/27)100% (7/7)
getJobExecutionCount (JobInstance): int 100% (1/1)100% (22/22)100% (7/7)
updateJobExecution (JobExecution): void 100% (1/1)100% (19/19)100% (6/6)

1package org.springframework.batch.core.repository.dao;
2 
3import java.util.ArrayList;
4import java.util.Iterator;
5import java.util.List;
6import java.util.Map;
7 
8import org.springframework.batch.core.JobExecution;
9import org.springframework.batch.core.JobInstance;
10import org.springframework.batch.support.transaction.TransactionAwareProxyFactory;
11import org.springframework.util.Assert;
12 
13/**
14 * In-memory implementation of {@link JobExecutionDao}.
15 * 
16 */
17public class MapJobExecutionDao implements JobExecutionDao {
18        
19        private static Map executionsById = TransactionAwareProxyFactory.createTransactionalMap();
20 
21        private static long currentId;
22 
23        public static void clear() {
24                executionsById.clear();
25        }
26 
27        public int getJobExecutionCount(JobInstance jobInstance) {
28                int count = 0;
29                for (Iterator iterator = executionsById.values().iterator(); iterator.hasNext();) {
30                        JobExecution exec = (JobExecution) iterator.next();
31                        if (exec.getJobInstance().equals(jobInstance)) {
32                                count++;
33                        }
34                }
35                return count;
36        }
37 
38        public void saveJobExecution(JobExecution jobExecution) {
39                Assert.isTrue(jobExecution.getId() == null);
40                Long newId = new Long(currentId++);
41                jobExecution.setId(newId);
42                jobExecution.incrementVersion();
43                executionsById.put(newId, jobExecution);
44        }
45 
46        public List findJobExecutions(JobInstance jobInstance) {
47                List executions = new ArrayList();
48                for (Iterator iterator = executionsById.values().iterator(); iterator.hasNext();) {
49                        JobExecution exec = (JobExecution) iterator.next();
50                        if (exec.getJobInstance().equals(jobInstance)) {
51                                executions.add(exec);
52                        }
53                }
54                return executions;
55        }
56 
57        public void updateJobExecution(JobExecution jobExecution) {
58                Long id = jobExecution.getId();
59                Assert.notNull(id, "JobExecution is expected to have an id (should be saved already)");
60                Assert.notNull(executionsById.get(id), "JobExecution must already be saved");
61                jobExecution.incrementVersion();
62                executionsById.put(id, jobExecution);
63        }
64 
65        public JobExecution getLastJobExecution(JobInstance jobInstance) {
66                JobExecution lastExec = null;
67                for (Iterator iterator = executionsById.values().iterator(); iterator.hasNext();) {
68                        JobExecution exec = (JobExecution) iterator.next();
69                        if (!exec.getJobInstance().equals(jobInstance)) {
70                                continue;
71                        }
72                        if (lastExec == null) {
73                                lastExec = exec;
74                        }
75                        if (lastExec.getStartTime().getTime() < exec.getStartTime().getTime()) {
76                                lastExec = exec;
77                        }
78                }
79                return lastExec;
80        }
81}

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