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

Modified Files:
        SimpleTemplateParser.java QueryTemplateParser.java 
        Template.java MultiTemplateParser.java 
        AbstractTemplateParser.java TemplateParser.java 
Log Message:
more tests 


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


Index: SimpleTemplateParser.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/SimpleTemplateParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- SimpleTemplateParser.java   6 Dec 2008 17:58:51 -0000       1.1
+++ SimpleTemplateParser.java   8 Dec 2008 19:37:08 -0000       1.2
@@ -3,20 +3,19 @@
 public class SimpleTemplateParser extends AbstractTemplateParser implements 
TemplateParser {
     public static final String SIMPLE_TEMPLATE_REGEXP = "\\w+(:[0-9]+)?";
     
-
     public SimpleTemplateParser(String nodeType, String nodeNumber, String 
template) {
         super(nodeType, nodeNumber, template);
     }
 
-    public void insertNumber() {
-        removeNumber();
+    public void insertNodeNumber() {
+        removeNodeNumber();
         if (nodeType.equals(template.getTemplate())) {
-            template.setNodenr(nodeNumber);
+            template.setNodeNumber(nodeNumber);
         }
     }
     
-    public static boolean isTemplate(String template){
-        return template.matches("^"+SIMPLE_TEMPLATE_REGEXP+"$");
+    public static boolean isTemplate(String template) {
+        return template.matches("^" + SIMPLE_TEMPLATE_REGEXP + "$");
     }
 
     @Override
@@ -29,5 +28,4 @@
         return new Template(templateStr);
     }
 
-    
 }


Index: QueryTemplateParser.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/QueryTemplateParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- QueryTemplateParser.java    6 Dec 2008 17:58:51 -0000       1.1
+++ QueryTemplateParser.java    8 Dec 2008 19:37:08 -0000       1.2
@@ -13,10 +13,10 @@
         this.templateQueryRunner = templateQueryRunner;
     }
 
-    public void insertNumber() {
-        removeNumber();
+    public void insertNodeNumber() {
+        removeNodeNumber();
         if(nodeType.equals(((QueryTemplate)template).getSourceType())){
-            template.setNodenr(templateQueryRunner.runQuery(nodeNumber, 
queryTemplate));
+            template.setNodeNumber(templateQueryRunner.runQuery(nodeNumber, 
queryTemplate));
         }
     }
 


Index: Template.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/Template.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- Template.java       6 Dec 2008 17:58:51 -0000       1.1
+++ Template.java       8 Dec 2008 19:37:08 -0000       1.2
@@ -7,7 +7,7 @@
 
 public class Template {
     protected String template;
-    protected String nodenr = "";
+    protected String nodeNumber = "";
     static final String TEMPLATE_NODENR_SEPARATOR=":";
     
     
@@ -18,23 +18,27 @@
     }
     
     public void removeNodenr(){
-        nodenr = "";
+        nodeNumber = "";
     }
     
     String getNodeNumber(){
-        return nodenr;
+        return nodeNumber;
     }
     
-    public boolean hasNodenr(){
-        return !"".equals(nodenr);
+    public boolean hasNodeNumber(){
+        return !"".equals(nodeNumber);
     }
     
-    public void setNodenr(String nodenr){
-        this.nodenr = (StringUtils.isBlank(nodenr) ? "" : nodenr);
+    public void setNodeNumber(String nodeNumber){
+        this.nodeNumber = (StringUtils.isBlank(nodeNumber) ? "" : nodeNumber);
     }
     
     public String getTemplate(){
-        return template + (hasNodenr() ? TEMPLATE_NODENR_SEPARATOR + nodenr : 
"");
+        return template + (hasTemplate() && hasNodeNumber()  ? 
TEMPLATE_NODENR_SEPARATOR  : "") + nodeNumber;
+    }
+    
+    public boolean hasTemplate() {
+        return ! StringUtils.isBlank(template);
     }
     
     private void splitNodenrFromTemplate() {
@@ -43,7 +47,11 @@
         Matcher m = p.matcher(_template);
         if (m.find()) {
             template = _template.substring(0, m.start());
-            nodenr = _template.substring(m.start() + 1);
+            nodeNumber = _template.substring(m.start() + 1);
         }
     }
+
+    public void removeTemplate() {
+        template = "";
+    }
 }


Index: MultiTemplateParser.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/MultiTemplateParser.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- MultiTemplateParser.java    6 Dec 2008 18:48:45 -0000       1.3
+++ MultiTemplateParser.java    8 Dec 2008 19:37:08 -0000       1.4
@@ -12,15 +12,9 @@
         return validator.isValidMultitemplate();
     }
 
-    /**
-     * Convenience method to clean the node numbers from a multi template. For 
this you don't need 
-     * things like node type,node number or a [EMAIL PROTECTED] 
TemplateQueryRunner} instance. 
-     * @param template
-     * @return
-     */
-    public static String cleanTemplate(String template) {
+    public static String stripTemplatesLeaveNodeNr(String template) {
         MultiTemplateParser mtp = new MultiTemplateParser("", "", template, 
null);
-        mtp.removeNumber();
+        mtp.stripTemplateLeaveNodenr();
         return mtp.getTemplate();
     }
 
@@ -30,21 +24,43 @@
         this.templateQueryRunner = templateQueryRunner;
     }
 
-    public void insertNumber() {
+    public void stripTemplateLeaveNodenr() {
         process(new Processor() {
             @Override
             void process() {
-                templateParser.insertNumber();
+                templateParser.stripTemplateLeaveNodenr();
+            }
+
+            @Override
+            String processPrefix(String prefix) {
+                //strip the opening bracket
+                return prefix.substring(0, prefix.length()-1);
+            }
+
+            @Override
+            String processSuffix(String suffix) {
+                return suffix.substring(1);
+            }
+            
+            
+        });
+    }
+
+    public void insertNodeNumber() {
+        process(new Processor() {
+            @Override
+            void process() {
+                templateParser.insertNodeNumber();
             }
         });
     }
 
 
-    public void removeNumber() {
+    public void removeNodeNumber() {
         process(new Processor() {
             @Override
             void process() {
-                templateParser.removeNumber();
+                templateParser.removeNodeNumber();
             }
         });
     }
@@ -62,7 +78,9 @@
             processor.process();
             String processedTemplate = 
processor.getTemplateParser().getTemplate();
     
-            template = new Template(templatePrefix + processedTemplate + 
templateSuffix);
+            template = new Template(processor.processPrefix(templatePrefix) + 
+                    processedTemplate + 
+                    processor.processSuffix(templateSuffix));
             offset = begin + processedTemplate.length() + 1;
         }
     }
@@ -80,6 +98,19 @@
     }
 
 
+    @Override
+    protected boolean matches(String template) {
+        return MultiTemplateParser.isTemplate(template);
+    }
+
+    @Override
+    protected Template instantiateTemplate(String templateStr) {
+        //TODO: there should be a MultiTemplate type, that holds the structure 
of text/subtemplates as a model.
+        
+        return new Template(templateStr);
+    }
+
+
     private static abstract class Processor {
         protected TemplateParser templateParser;
 
@@ -87,22 +118,18 @@
             this.templateParser = templateParser;
         }
 
-        public TemplateParser getTemplateParser() {
+         TemplateParser getTemplateParser() {
             return templateParser;
         }
 
-        abstract void process();
+         String processPrefix(String prefix){
+            return prefix;
     }
 
-    @Override
-    protected boolean matches(String template) {
-        return MultiTemplateParser.isTemplate(template);
+         String processSuffix(String suffix){
+            return suffix;
     }
 
-    @Override
-    protected Template instantiateTemplate(String templateStr) {
-        //TODO: there should be a MultiTemplate type, that holds the structure 
of text/subtemplates as a model.
-        
-        return new Template(templateStr);
+        abstract void process();
     }
 }


Index: AbstractTemplateParser.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/AbstractTemplateParser.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- AbstractTemplateParser.java 6 Dec 2008 18:45:42 -0000       1.2
+++ AbstractTemplateParser.java 8 Dec 2008 19:37:08 -0000       1.3
@@ -15,7 +15,7 @@
     public String getTemplate() {
         return template.getTemplate();
     }
-    public void removeNumber() {
+    public void removeNodeNumber() {
         template.removeNodenr();
     }
    
@@ -26,6 +26,10 @@
         }
     }
     
+    public void stripTemplateLeaveNodenr() {
+        template.removeTemplate();
+    }
+    
     //TODO: this is all a bit weird. Better solution for static isTemplate() 
methods 
     //(should be in interface, but you don't want to instantiate a parser to 
see if it can parse a template...
     protected abstract boolean matches(String template);


Index: TemplateParser.java
===================================================================
RCS file: 
/var/cvs/applications/vpro-wizards/src/org/mmbase/applications/vprowizards/spring/cache/template/TemplateParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- TemplateParser.java 6 Dec 2008 17:58:51 -0000       1.1
+++ TemplateParser.java 8 Dec 2008 19:37:08 -0000       1.2
@@ -7,7 +7,8 @@
  *
  */
 public interface TemplateParser {
-    public void insertNumber();
-    public void removeNumber();
+    public void insertNodeNumber();
+    public void removeNodeNumber();
+    public void stripTemplateLeaveNodenr();
     public String getTemplate();
 }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to