1 package com.imcode.db.benchmark;
2
3 import com.imcode.db.Database;
4 import com.imcode.db.DatabaseCommand;
5 import com.imcode.db.DatabaseException;
6
7 import java.util.HashMap;
8 import java.util.Map;
9
10 public class BenchmarkDatabase implements Database {
11
12 private HashMap averagesMap = new HashMap() ;
13
14 private final Database database;
15
16 public BenchmarkDatabase(Database database) {
17 this.database = database;
18 }
19
20 public Object execute(final DatabaseCommand databaseCommand) throws DatabaseException {
21 return database.execute(new BenchmarkDatabaseCommand(this, databaseCommand)) ;
22 }
23
24 BenchmarkAverages getAverages(String sql) {
25 BenchmarkAverages averages = (BenchmarkAverages) averagesMap.get(sql);
26 if (null == averages ) {
27 averages = new BenchmarkAverages();
28 averagesMap.put(sql, averages) ;
29 }
30 return averages;
31 }
32
33 public Object executeCommand(DatabaseCommand databaseCommand) throws DatabaseException {
34 return execute(databaseCommand) ;
35 }
36
37 public Map getBenchmarks() {
38 return (Map) averagesMap.clone();
39 }
40
41 }