View Javadoc

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  }