Author: aadamchik
Date: Sat Nov 20 17:24:21 2010
New Revision: 1037275

URL: http://svn.apache.org/viewvc?rev=1037275&view=rev
Log:
CAY-1508 Support for DataChannel filters

consistent filter management API
javadocs

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java?rev=1037275&r1=1037274&r2=1037275&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
 Sat Nov 20 17:24:21 2010
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataChannel;
@@ -138,6 +139,7 @@ public class DataDomain implements Query
      * Creates a DataDomain and assigns it a name.
      */
     public DataDomain(String name) {
+        this.filters = new CopyOnWriteArrayList<DataChannelFilter>();
         setName(name);
         resetProperties();
     }
@@ -150,6 +152,7 @@ public class DataDomain implements Query
      * @param properties A Map containing domain configuration properties.
      */
     public DataDomain(String name, Map properties) {
+        this.filters = new CopyOnWriteArrayList<DataChannelFilter>();
         setName(name);
         initWithProperties(properties);
     }
@@ -956,19 +959,19 @@ public class DataDomain implements Query
     }
 
     /**
+     * Returns a list of filters registered with this DataDomain. The returned 
list allows
+     * concurrent modifications, so if a caller needs to add or remove a 
filter, he may
+     * use add/remove methods on the returned list.
+     * <p>
+     * Filter ordering note: filters are applied in reverse order of their 
occurrence in
+     * the filter list. I.e. the last filter in the list called first in the 
chain.
+     * 
      * @since 3.1
      */
     public List<DataChannelFilter> getFilters() {
         return filters;
     }
 
-    /**
-     * @since 3.1
-     */
-    public void setFilters(List<DataChannelFilter> filters) {
-        this.filters = filters;
-    }
-
     abstract class DataDomainFilterChain implements DataChannelFilterChain {
 
         private int i;

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java?rev=1037275&r1=1037274&r2=1037275&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
 Sat Nov 20 17:24:21 2010
@@ -215,10 +215,9 @@ public class DataDomainProvider implemen
 
         for (DataChannelFilter filter : filters) {
             filter.init(dataDomain);
+            dataDomain.getFilters().add(filter);
         }
 
-        dataDomain.setFilters(filters);
-
         return dataDomain;
     }
 }


Reply via email to