diff --git a/src/main/java/com/samskivert/depot/DepotRepository.java b/src/main/java/com/samskivert/depot/DepotRepository.java index 6dd4e16..d6359d4 100644 --- a/src/main/java/com/samskivert/depot/DepotRepository.java +++ b/src/main/java/com/samskivert/depot/DepotRepository.java @@ -388,6 +388,10 @@ public abstract class DepotRepository } return mods; } + @Override + public void updateStats (Stats stats) { + stats.noteModification(pClass); + } }); } @@ -639,6 +643,10 @@ public abstract class DepotRepository created[0] = true; return mods; } + @Override + public void updateStats (Stats stats) { + stats.noteModification(pClass); + } }); return created[0]; } @@ -706,7 +714,7 @@ public abstract class DepotRepository * @throws DatabaseException if any problem is encountered communicating with the database. */ public int deleteAll ( - Class type, final WhereClause where, CacheInvalidator invalidator) + final Class type, final WhereClause where, CacheInvalidator invalidator) throws DatabaseException { if (invalidator instanceof ValidatingCacheInvalidator) { @@ -723,6 +731,10 @@ public abstract class DepotRepository protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException { return builder.prepare(conn).executeUpdate(); } + @Override + public void updateStats (Stats stats) { + stats.noteModification(type); + } }); } @@ -827,7 +839,7 @@ public abstract class DepotRepository /** * A helper method for the various partial update methods. */ - protected int doUpdate (CacheInvalidator invalidator, UpdateClause update) + protected int doUpdate (CacheInvalidator invalidator, final UpdateClause update) { final SQLBuilder builder = _ctx.getSQLBuilder(DepotTypes.getDepotTypes(_ctx, update)); builder.newQuery(update); @@ -836,6 +848,10 @@ public abstract class DepotRepository protected int invoke (Connection conn, DatabaseLiaison liaison) throws SQLException { return builder.prepare(conn).executeUpdate(); } + @Override + public void updateStats (Stats stats) { + stats.noteModification(update.getPersistentClass()); + } }); } diff --git a/src/main/java/com/samskivert/depot/Stats.java b/src/main/java/com/samskivert/depot/Stats.java index 5119bec..06af524 100644 --- a/src/main/java/com/samskivert/depot/Stats.java +++ b/src/main/java/com/samskivert/depot/Stats.java @@ -120,8 +120,9 @@ public class Stats } } - public synchronized void noteQuery (int cachedQueries, int uncachedQueries, int explicitQueries, - int cachedRecords, int uncachedRecords) + public synchronized void noteQuery ( + Class type, int cachedQueries, int uncachedQueries, + int explicitQueries, int cachedRecords, int uncachedRecords) { _cachedQueries += cachedQueries; _uncachedQueries += uncachedQueries; @@ -130,6 +131,11 @@ public class Stats _uncachedRecords += uncachedRecords; } + public synchronized void noteModification (Class type) + { + // nothing by default + } + protected int _totalOps; protected long _connectionWaitTime; diff --git a/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java b/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java index 4d59b1b..1444425 100644 --- a/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java +++ b/src/main/java/com/samskivert/depot/impl/FindAllKeysQuery.java @@ -88,7 +88,7 @@ public class FindAllKeysQuery extends Fetcher // from Fetcher public void updateStats (Stats stats) { - stats.noteQuery(_cachedQueries, _uncachedQueries, _explicitQueries, + stats.noteQuery(_type, _cachedQueries, _uncachedQueries, _explicitQueries, _cachedRecords, _uncachedRecords); } diff --git a/src/main/java/com/samskivert/depot/impl/FindOneQuery.java b/src/main/java/com/samskivert/depot/impl/FindOneQuery.java index 41187d3..3dc6443 100644 --- a/src/main/java/com/samskivert/depot/impl/FindOneQuery.java +++ b/src/main/java/com/samskivert/depot/impl/FindOneQuery.java @@ -112,7 +112,7 @@ public class FindOneQuery extends Fetcher // from Operation public void updateStats (Stats stats) { - stats.noteQuery(0, 0, 0, _cachedRecords, 1-_cachedRecords); + stats.noteQuery(_marsh.getPersistentClass(), 0, 0, 0, _cachedRecords, 1-_cachedRecords); } protected CacheKey getCacheKey () diff --git a/src/main/java/com/samskivert/depot/impl/Modifier.java b/src/main/java/com/samskivert/depot/impl/Modifier.java index d44a267..ffdbbcb 100644 --- a/src/main/java/com/samskivert/depot/impl/Modifier.java +++ b/src/main/java/com/samskivert/depot/impl/Modifier.java @@ -144,7 +144,7 @@ public abstract class Modifier // from interface Operation public void updateStats (Stats stats) { - // nothing to update for modifiers + // nothing to update by default } /**