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 }