Author: konstantin.mishin
Date: 2008-10-06 14:19:43 -0400 (Mon, 06 Oct 2008)
New Revision: 10675
Modified:
trunk/framework/api/src/main/java/org/ajax4jsf/model/QueuesManager.java
Log:
add clean method
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/model/QueuesManager.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/model/QueuesManager.java 2008-10-06
18:13:47 UTC (rev 10674)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/model/QueuesManager.java 2008-10-06
18:19:43 UTC (rev 10675)
@@ -1,5 +1,6 @@
package org.ajax4jsf.model;
+import java.util.Iterator;
import java.util.Map;
import javax.faces.context.FacesContext;
@@ -22,7 +23,7 @@
if (!attributes.containsKey(key)) {
attributes.put(key, queue);
} else {
- throw new IllegalArgumentException("Queue whis name '" + name +
"' has already been used");
+ throw new IllegalArgumentException("Queue with name '" + name +
"' has already been used");
}
}
@@ -53,4 +54,19 @@
static public Queue remove(String name) {
return remove(name, null);
}
+
+ static public void clean(FacesContext context) {
+ if (context == null) {
+ context = FacesContext.getCurrentInstance();
+ }
+ for (Iterator<Map.Entry<String, Object>> iterator = context.getViewRoot()
+ .getAttributes().entrySet().iterator(); iterator.hasNext();) {
+ Map.Entry<String, Object> entry = (Map.Entry<String, Object>)
iterator.next();
+ if (entry.getKey().startsWith(MAP_KEY_PREFIX)) {
+ if (((Queue) entry.getValue()).isTransient()) {
+ iterator.remove();
+ }
+ }
+ }
+ }
}