Author: ppoddar
Date: Tue Feb 17 15:41:28 2009
New Revision: 745123

URL: http://svn.apache.org/viewvc?rev=745123&view=rev
Log:
OPENJPA-703: Use template for QueryStatistics.

Modified:
    
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
    
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
    
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java

Modified: 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
 Tue Feb 17 15:41:28 2009
@@ -57,7 +57,7 @@
        // Key: Query identifier Value: Reason why excluded
        private final Map<String, String> _uncachables;
        private List<String> _exclusionPatterns;
-       private final QueryStatistics _stats;
+       private final QueryStatistics<String> _stats;
        private ReentrantLock _lock = new ReentrantLock();
        private Log _log;
        private Localizer _loc = 
Localizer.forPackage(PreparedQueryCacheImpl.class);
@@ -65,7 +65,7 @@
        public PreparedQueryCacheImpl() {
                _delegate = new HashMap<String, PreparedQuery>();
                _uncachables = new HashMap<String, String>();
-               _stats = new QueryStatistics.Default();
+               _stats = new QueryStatistics.Default<String>();
        }
        
        public Boolean register(String id, Query query, FetchConfiguration 
hints) {
@@ -264,7 +264,7 @@
                }
        }
        
-       public QueryStatistics getStatistics() {
+       public QueryStatistics<String> getStatistics() {
                return _stats;
        }
        

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
 Tue Feb 17 15:41:28 2009
@@ -188,5 +188,5 @@
        /**
         * Gets the simple statistics for executed queries.
         */
-       public QueryStatistics getStatistics();
+       public QueryStatistics<String> getStatistics();
 }
\ No newline at end of file

Modified: 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
 (original)
+++ 
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
 Tue Feb 17 15:41:28 2009
@@ -37,13 +37,13 @@
  * @author Pinaki Poddar
  * 
  */
-public interface QueryStatistics extends Serializable {
+public interface QueryStatistics<T> extends Serializable {
        
        /**
         * Record that the given query has been executed. The boolean parameter
         * designates whether the executed query is a cached version.  
         */
-       void recordExecution(String query, boolean cached);
+       void recordExecution(T query, boolean cached);
                
        /**
         * Gets number of total query execution since last reset.
@@ -58,12 +58,12 @@
        /**
         * Gets number of executions for the given query since last reset.
         */
-       public long getExecutionCount(String query);
+       public long getExecutionCount(T query);
 
        /**
         * Gets number of executions for the given query since start.
         */
-       public long getTotalExecutionCount(String query);
+       public long getTotalExecutionCount(T query);
 
        /**
         * Gets number of total query execution that are cached since last 
reset.
@@ -79,13 +79,13 @@
         * Gets number of executions for the given query that are cached since 
         * last reset.
         */
-       public long getHitCount(String query);
+       public long getHitCount(T query);
 
        /**
         * Gets number of executions for the given query that are cached since 
         * start.
         */
-       public long getTotalHitCount(String query);
+       public long getTotalHitCount(T query);
 
        /**
         * Gets the time of last reset.
@@ -111,12 +111,12 @@
         * A default implementation.
         *
         */
-       public static class Default implements QueryStatistics {
+       public static class Default<T> implements QueryStatistics<T> {
                private static final int ARRAY_SIZE = 2;
                private long[] astat = new long[ARRAY_SIZE];
                private long[] stat  = new long[ARRAY_SIZE];
-               private Map<String, long[]> stats  = new HashMap<String, 
long[]>();
-               private Map<String, long[]> astats = new HashMap<String, 
long[]>();
+               private Map<T, long[]> stats  = new HashMap<T, long[]>();
+               private Map<T, long[]> astats = new HashMap<T, long[]>();
                private Date start = new Date();
                private Date since = start;
 
@@ -131,11 +131,11 @@
                        return astat[READ];
                }
 
-               public long getExecutionCount(String query) {
+               public long getExecutionCount(T query) {
                        return getCount(stats, query, READ);
                }
 
-               public long getTotalExecutionCount(String query) {
+               public long getTotalExecutionCount(T query) {
                        return getCount(astats, query, READ);
                }
 
@@ -147,15 +147,15 @@
                        return astat[HIT];
                }
 
-               public long getHitCount(String query) {
+               public long getHitCount(T query) {
                        return getCount(stats, query, HIT);
                }
 
-               public long getTotalHitCount(String query) {
+               public long getTotalHitCount(T query) {
                        return getCount(astats, query, HIT);
                }
 
-               private long getCount(Map<String, long[]> target, String query, 
int i) {
+               private long getCount(Map<T, long[]> target, T query, int i) {
                        long[] row = target.get(query);
                        return (row == null) ? 0 : row[i];
                }
@@ -174,14 +174,14 @@
                        since = new Date();
                }
 
-               private void addSample(String query, int index) {
+               private void addSample(T query, int index) {
                        stat[index]++;
                        astat[index]++;
                        addSample(stats, query, index);
                        addSample(astats, query, index);
                }
                
-               private void addSample(Map<String, long[]> target, String 
query, int i) {
+               private void addSample(Map<T, long[]> target, T query, int i) {
                        long[] row = target.get(query);
                        if (row == null) {
                                row = new long[ARRAY_SIZE];
@@ -190,7 +190,7 @@
                        target.put(query, row);
                }
                
-               public void recordExecution(String query, boolean cached) {
+               public void recordExecution(T query, boolean cached) {
                        addSample(query, READ);
                        if (cached)
                                addSample(query, HIT);
@@ -210,7 +210,7 @@
                                out.println("\tSince Start \tSince Reset 
\t\tQuery");
                        }
                        int i = 0;
-                       for (String key : stats.keySet()) {
+                       for (T key : stats.keySet()) {
                                i++;
                                long[] arow = astats.get(key);
                                if (since == start) {

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
 Tue Feb 17 15:41:28 2009
@@ -587,7 +587,7 @@
         Boolean registered = cache.register(_id, _query, fetch);
         boolean alreadyCached = (registered == null);
         String lang = _query.getLanguage();
-        QueryStatistics stats = cache.getStatistics();
+        QueryStatistics<String> stats = cache.getStatistics();
         if (alreadyCached && LANG_PREPARED_SQL.equals(lang)) {
             PreparedQuery pq = _em.getPreparedQuery(_id);
             if (pq.isInitialized()) {


Reply via email to