You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/11/20 18:24:22 UTC
svn commit: r1037275 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne:
access/DataDomain.java configuration/server/DataDomainProvider.java
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;
}
}