Author: aadamchik
Date: Mon Nov 22 16:28:37 2010
New Revision: 1037768

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

* moving 'init' filter method call inside DataDomain addFilter method

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=1037768&r1=1037767&r2=1037768&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
 Mon Nov 22 16:28:37 2010
@@ -959,9 +959,7 @@ 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.
+     * Returns an unmodifiable list of filters registered with this DataDomain.
      * <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.
@@ -969,7 +967,26 @@ public class DataDomain implements Query
      * @since 3.1
      */
     public List<DataChannelFilter> getFilters() {
-        return filters;
+        return Collections.unmodifiableList(filters);
+    }
+
+    /**
+     * Adds a new filter, calling its 'init' method.
+     * 
+     * @since 3.1
+     */
+    public void addFilter(DataChannelFilter filter) {
+        filter.init(this);
+        filters.add(filter);
+    }
+
+    /**
+     * Removes a filter from the filter chain.
+     * 
+     * @since 3.1
+     */
+    public void removeFilter(DataChannelFilter filter) {
+        filters.remove(filter);
     }
 
     abstract class DataDomainFilterChain implements DataChannelFilterChain {

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=1037768&r1=1037767&r2=1037768&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
 Mon Nov 22 16:28:37 2010
@@ -214,8 +214,7 @@ public class DataDomainProvider implemen
         }
 
         for (DataChannelFilter filter : filters) {
-            filter.init(dataDomain);
-            dataDomain.getFilters().add(filter);
+            dataDomain.addFilter(filter);
         }
 
         return dataDomain;


Reply via email to