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