Update of 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache
In directory 
james.mmbase.org:/tmp/cvs-serv32624/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache

Modified Files:
        TokenizerCacheNameResolver.java FlushNameTemplateBean.java 
Log Message:
more tests 


See also: 
http://cvs.mmbase.org/viewcvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache


Index: TokenizerCacheNameResolver.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/TokenizerCacheNameResolver.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- TokenizerCacheNameResolver.java     28 Nov 2008 20:20:48 -0000      1.2
+++ TokenizerCacheNameResolver.java     8 Dec 2008 19:37:08 -0000       1.3
@@ -6,7 +6,7 @@
 The license (Mozilla version 1.0) can be read at the MMBase site.
 See http://www.MMBase.org/license
 
-*/ 
+ */
 package org.mmbase.applications.vprowizards.spring.cache;
 
 import java.util.ArrayList;
@@ -30,31 +30,29 @@
  * in names paces. Each name space could relate to a kind of cache flush hint 
[EMAIL PROTECTED] CacheFlushHint}.
  * There is also support for templates. See: [EMAIL PROTECTED] 
FlushNameTemplateBean}
  * </pre> 
+ * 
  * @author ebunders
  */
 public class TokenizerCacheNameResolver implements CacheNameResolver {
 
-    
-    
     private Map<String, List<String>> namesForNamespace = null;
     private List<String> globalValues;
     private String input = null;
     
-    private final String reNamespace = "^[\\w_]+:";
-    private final String reValue = "[\\w_]+";
-    private final String reTemplate = "(" + reValue + 
"(\\[[\\w_]+(:[0-9])?\\])?)?";
-    private final String reComposite = reNamespace + reTemplate + "(," + 
reTemplate + ")*";
+    private static final String REGEX_NAMESPACE = "^[\\w_]+:";
+    private static final String REGEX_VALUE = "[\\w_]+";
+    private static final String REGEX_TEMPLATE = "(" + REGEX_VALUE + 
"(\\[[\\w_]+(:[0-9])?\\])?)?";
+    private static final String REGEX_COMPOSITE = REGEX_NAMESPACE + 
REGEX_TEMPLATE + "(," + REGEX_TEMPLATE + ")*";
 
     private static Logger log = 
Logging.getLoggerInstance(TokenizerCacheNameResolver.class);
 
-
     public List<String> getNames(String nameSpace) {
-        if(StringUtils.isEmpty(nameSpace)) {
+        if (StringUtils.isEmpty(nameSpace)) {
             throw new IllegalStateException("attribute namespace is empty");
         }
         tokenizeIfNecessary();
         List<String> result = new ArrayList<String>();
-        if(namesForNamespace.get(nameSpace) != null){
+        if (namesForNamespace.get(nameSpace) != null) {
             result.addAll(namesForNamespace.get(nameSpace));
         }
         result.addAll(globalValues);
@@ -77,17 +75,15 @@
     }
 
     /**
-         * Tokenize the input string with all the configured tokens. All 
values for each token are then put thrugh all the
-         * modifiers
-         *TODO: what if the string starts with a namespace that has not been 
registered.
-         [EMAIL PROTECTED] IllegalStateException when input is not set yet.
+     [EMAIL PROTECTED] IllegalStateException
+     *             when input is not set yet.
          */
         private void tokenize() {
-            if(StringUtils.isEmpty(input)) {
+        if (StringUtils.isEmpty(input)) {
                 throw new IllegalStateException("set input first");
             }
             
-            //init 
+        // init
             namesForNamespace = new HashMap<String, List<String>>();
             globalValues = new ArrayList<String>();
             
@@ -96,26 +92,23 @@
                 part = part.trim();
                 boolean partHasNamespace = false;
     //            boolean matches = part.matches("^[\\w_]+:[\\w,]+");
-                boolean matches = part.matches(reComposite);
+            boolean matches = part.matches(REGEX_COMPOSITE);
                 if (matches) {
                     partHasNamespace = true;
                     String nameSpace = part.substring(0, part.indexOf(":"));
-                    part = part.substring(part.indexOf(":")+1);
-                    if(namesForNamespace.get(nameSpace) == null){
+                part = part.substring(part.indexOf(":") + 1);
+                if (namesForNamespace.get(nameSpace) == null) {
                         namesForNamespace.put(nameSpace, new 
ArrayList<String>());
                     }
                     
namesForNamespace.get(nameSpace).addAll(Arrays.asList(part.split(",")));
                 }
                 
-                
                 if (!partHasNamespace) {
                     globalValues.addAll(Arrays.asList(part.split(",")));
                 }
             }
         }
 
-
-
     private void reset() {
         namesForNamespace = null;
     }
@@ -124,6 +117,4 @@
         throw new UnsupportedOperationException("this method is not supported 
for this cache name resolver");
     }
     
-    
-    
 }


Index: FlushNameTemplateBean.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/FlushNameTemplateBean.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- FlushNameTemplateBean.java  6 Dec 2008 18:48:45 -0000       1.4
+++ FlushNameTemplateBean.java  8 Dec 2008 19:37:08 -0000       1.5
@@ -59,54 +59,51 @@
 
     private Cloud cloud;
     
+    private TemplateQueryRunner templateQueryRunner = null;
+
     private static final Logger log = 
Logging.getLoggerInstance(FlushNameTemplateBean.class);
 
     public void setCloud(Cloud cloud) {
         this.cloud = cloud;
     }
 
-
     public void setNodeType(String type) {
         this.nodeType = type;
     }
 
-
     public void setTemplate(String template) {
         this.template = template;
     }
 
-
     public void setNodeNumber(String nodenr) {
         this.nodeNumber = nodenr;
     }
 
-
-    public String processAndGetTemplate(){
+    public String processAndGetTemplate() {
         checkNull(template, "template");
         checkNull(nodeType, "nodeType");
         checkNull(nodeNumber, "nodeNumber");
         checkNull(cloud, "cloud");
-        if(MultiTemplateParser.isTemplate(template)) {
-            TemplateQueryRunner templateQueryRunner = new 
MMBaseTemplateQueryRunner(cloud);
-            TemplateParser parser = new MultiTemplateParser(nodeType, 
nodeNumber, template, templateQueryRunner );
-            parser.insertNumber();
+        if (MultiTemplateParser.isTemplate(template)) {
+            templateQueryRunner = new MMBaseTemplateQueryRunner(cloud);
+            TemplateParser parser = new MultiTemplateParser(nodeType, 
nodeNumber, template, templateQueryRunner);
+            parser.insertNodeNumber();
             return parser.getTemplate();
         } 
         return template;
     }
     
+    void setTemplateQueryRunner(TemplateQueryRunner templateQueryRunner) {
+        this.templateQueryRunner = templateQueryRunner;
+    }
     
-    private void checkNull(Object obj, String name){
+    private void checkNull(Object obj, String name) {
         if (obj == null) {
             throw new IllegalStateException(String.format("property %s has not 
been set.", name));
         }
-        if (String.class.isAssignableFrom(obj.getClass()) && 
StringUtils.isBlank((String)obj)) {
+        if (String.class.isAssignableFrom(obj.getClass()) && 
StringUtils.isBlank((String) obj)) {
             throw new IllegalStateException(String.format("property %s is an 
empty string.", name));
         }
     }
 
-
-    
-    
-   
 }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to