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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs