Author: tv
Date: Tue Feb  2 17:57:21 2016
New Revision: 1728164

URL: http://svn.apache.org/viewvc?rev=1728164&view=rev
Log:
Further simplify API with better encapsulation, update docs

Modified:
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
    
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/manager/AbstractBaseManagerTest.java
    
db/torque/torque4/trunk/torque-site/src/site/xdoc/documentation/orm-reference/managers-cache.xml

Modified: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java?rev=1728164&r1=1728163&r2=1728164&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
 (original)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
 Tue Feb  2 17:57:21 2016
@@ -86,7 +86,7 @@ public abstract class AbstractBaseManage
     private CopyOnWriteArraySet<Column> validFields = new 
CopyOnWriteArraySet<Column>();
 
     /** The listeners for this manager. */
-    protected ConcurrentMap<Column, CopyOnWriteArrayList<CacheListener<?>>> 
listenersMap =
+    private ConcurrentMap<Column, CopyOnWriteArrayList<CacheListener<?>>> 
listenersMap =
         new ConcurrentHashMap<Column, 
CopyOnWriteArrayList<CacheListener<?>>>();
 
     /**
@@ -571,17 +571,18 @@ public abstract class AbstractBaseManage
     }
 
     /**
-     * Notify all listeners in the list that an object has changed
+     * Notify all listeners associated to the column that an object has changed
      *
-     * @param listeners the list of listeners
+     * @param column the column related to the listeners
      * @param oldOm the previous object, null if the object has been added
      * @param om the new object, null if the object has been removed
      */
     protected <TT extends Persistent> void notifyListeners(
-            final List<CacheListener<?>> listeners,
+            final Column column,
             final TT oldOm,
             final TT om)
     {
+        List<CacheListener<?>> listeners = listenersMap.get(column);
         if (listeners != null)
         {
             for (CacheListener<?> cl : listeners)

Modified: 
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/manager/AbstractBaseManagerTest.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/manager/AbstractBaseManagerTest.java?rev=1728164&r1=1728163&r2=1728164&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/manager/AbstractBaseManagerTest.java
 (original)
+++ 
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/manager/AbstractBaseManagerTest.java
 Tue Feb  2 17:57:21 2016
@@ -187,7 +187,7 @@ public class AbstractBaseManagerTest ext
         this.removedObjectCalled = false;
                TestPersistent test1 = new TestPersistent();
                TestPersistent test2 = new TestPersistent();
-               manager.notifyListeners(manager.listenersMap.get(new 
ColumnImpl("test1")), (TestPersistent)null, test1);
+               manager.notifyListeners(new ColumnImpl("test1"), 
(TestPersistent)null, test1);
                assertTrue("Should call addedObject", addedObjectCalled);
                assertFalse("Should not call refreshedObject", 
refreshedObjectCalled);
         assertFalse("Should not call removedObject", removedObjectCalled);
@@ -195,7 +195,7 @@ public class AbstractBaseManagerTest ext
                this.addedObjectCalled = false;
                this.refreshedObjectCalled = false;
         this.removedObjectCalled = false;
-               manager.notifyListeners(manager.listenersMap.get(new 
ColumnImpl("test2")), test2, test1);
+               manager.notifyListeners(new ColumnImpl("test2"), test2, test1);
                assertFalse("Should not call addedObject", addedObjectCalled);
                assertTrue("Should call refreshedObject", 
refreshedObjectCalled);
         assertFalse("Should not call removedObject", removedObjectCalled);
@@ -203,7 +203,7 @@ public class AbstractBaseManagerTest ext
         this.addedObjectCalled = false;
         this.refreshedObjectCalled = false;
         this.removedObjectCalled = false;
-        manager.notifyListeners(manager.listenersMap.get(new 
ColumnImpl("test2")), test2, null);
+        manager.notifyListeners(new ColumnImpl("test2"), test2, null);
         assertFalse("Should not call addedObject", addedObjectCalled);
         assertFalse("Should not call refreshedObject", refreshedObjectCalled);
         assertTrue("Should call removedObject", removedObjectCalled);

Modified: 
db/torque/torque4/trunk/torque-site/src/site/xdoc/documentation/orm-reference/managers-cache.xml
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-site/src/site/xdoc/documentation/orm-reference/managers-cache.xml?rev=1728164&r1=1728163&r2=1728164&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-site/src/site/xdoc/documentation/orm-reference/managers-cache.xml
 (original)
+++ 
db/torque/torque4/trunk/torque-site/src/site/xdoc/documentation/orm-reference/managers-cache.xml
 Tue Feb  2 17:57:21 2016
@@ -57,7 +57,7 @@ List foos = FooManager.getInstances(ids)
     <p>
       Note that the cache is global and is not Transaction-aware.
       This implies that isolation of different transactions will be difficult
-      to achieve. For example, you might read uncommited data out of the 
+      to achieve. For example, you might read uncommitted data out of the 
       cache even if you database transaction isolation is set to 
       <code>READ_COMMITTED</code>.
     </p>
@@ -67,7 +67,7 @@ List foos = FooManager.getInstances(ids)
   <section name="Business Object Cache">
 
     <p>
-      If no-arg constructor of FooManager,
+      If the no-arg constructor of FooManager
       calls setRegion(region) where the String region is the key used to
       determine the cache, the manager will cache instances of Foo retrieved
       via the getInstance(ObjectKey id) and getInstances(List ids) methods.
@@ -95,10 +95,10 @@ public FooManager()
 <source><![CDATA[
 jcs.region.net_bar_om_Foo=
 jcs.region.net_bar_om_Foo.cacheattributes=
-    org.apache.jcs.engine.CompositeCacheAttributes
+    org.apache.commons.jcs.engine.CompositeCacheAttributes
 jcs.region.net_bar_om_Foo.cacheattributes.MaxObjects=1200
 jcs.region.net_bar_om_Foo.cacheattributes.MemoryCacheName=
-    org.apache.jcs.engine.memory.lru.LRUMemoryCache
+    org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache
 ]]></source>
 
     <p>
@@ -122,7 +122,7 @@ jcs.region.net_bar_om_Foo.cacheattribute
 
     <p>
       The above fk relationship will also generate a Bar.getFoos(Criteria).  It
-      would be preferrable that repeated requests to this method returned
+      would be preferable that repeated requests to this method returned
       cached results as opposed to hitting the db for each call.  It could be
       possible to add such caching to the generated method, and Criteria
       implements an equals() method that would make this possible.  But
@@ -163,7 +163,7 @@ public List getFoos(FooType type, boolea
     <source><![CDATA[
 public List getFoos(FooType type, boolean deleted)
 {
-    List result = null;
+    List<Foo> result = null;
     Boolean b = (deleted ? Boolean.TRUE : Boolean.FALSE);
     Object obj = BarManager.getMethodResult().get(this, "getFoos", type, b);
     if ( obj == null )
@@ -177,7 +177,7 @@ public List getFoos(FooType type, boolea
     }
     else
     {
-        result = (List)obj;
+        result = (List<Foo>)obj;
     }
     return result;
 }
@@ -190,15 +190,9 @@ public List getFoos(FooType type, boolea
       object on which the method was called.  If the object is not Serializable
       or the method is static, a String as given by Object.toString() method or
       the className might be used.  The second argument is the method name.
-      There are versions of the get method that take up to 3 additional 
+      The get method takes a variable number of additional 
       arguments that will be the arguments to the method, or if they are not 
-      Serializable some Serializable proxy.  
-      There is also a get method that takes an Object[] that can be used for 
-      methods that have more than 3 arguments; the
-      first two objects in the array should be the instance and method name.
-      The reason for not just having the Object[] format is that keys are 
pooled
-      and since most methods will be less than 4 arguments, object creation
-      related to the cache is minimized.  Now the method will return cached
+      Serializable some Serializable proxy. Now the method will return cached
       results as long as the results remain in the cache. So there must be some
       way to invalidate these results, if the database changes in a way that
       is likely to affect the result that should be returned by the method.
@@ -254,7 +248,7 @@ public void refreshedObject(Persistent o
 /** fields which interest us with respect to cache events */
 public List getInterestedFields()
 {
-    List interestedCacheFields = new LinkedList();
+    List<Column> interestedCacheFields = new LinkedList<>();
     interestedCacheFields.add(FooPeer.BAR_ID);
     interestedCacheFields.add(XPeer.X_ID);
     ...
@@ -279,16 +273,14 @@ public FooManager()
     throws TorqueException
 {
     setRegion("net_bar_om_Foo");
-    validFields = new HashMap();
-    validFields.put(FooPeer.BAR_ID, null);
+    addValidField(FooPeer.BAR_ID);
 }
 
 protected Persistent putInstanceImpl(Persistent om)
     throws TorqueException
 {
     Persistent oldOm = super.putInstanceImpl(om);
-    List listeners = (List)listenersMap.get(FooPeer.BAR_ID);
-    notifyListeners(listeners, oldOm, om);
+    notifyListeners(FooPeer.BAR_ID, oldOm, om);
     return oldOm;
 }
 ]]></source>



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org
For additional commands, e-mail: torque-dev-h...@db.apache.org

Reply via email to