Author: ssanthor
Date: 2007-03-12 12:29:14 +0100 (Mon, 12 Mar 2007)
New Revision: 4559
Added:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/SlashTrimStringDirective.java
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/VelocityEngineFactory.java
Log:
fix for SEARCH-1815
Added:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/SlashTrimStringDirective.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/SlashTrimStringDirective.java
(rev 0)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/SlashTrimStringDirective.java
2007-03-12 11:29:14 UTC (rev 4559)
@@ -0,0 +1,61 @@
+// Copyright (2007) Schibsted S�k AS
+package no.schibstedsok.searchportal.view.velocity;
+
+import org.apache.velocity.runtime.directive.Directive;
+import org.apache.velocity.runtime.parser.node.Node;
+import org.apache.velocity.context.InternalContextAdapter;
+import org.apache.velocity.exception.ResourceNotFoundException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.MethodInvocationException;
+import org.apache.log4j.Logger;
+
+import java.io.Writer;
+import java.io.IOException;
+
+/**
+ * Directive used to trim everytinhg from the start of the string to the last
slash.
+ * primary used to remove starting navigators in subnavigator names
+ * User: ant
+ * Date: 12.mar.2007
+ * Time: 10:09:44
+ */
+public class SlashTrimStringDirective extends Directive {
+ private static final Logger LOG =
Logger.getLogger(ChopStringDirective.class);
+ private static final String NAME = "slashTrimString";
+
+ public String getName() {
+ return NAME;
+ }
+
+ public int getType() {
+ return LINE;
+ }
+
+ public boolean render(InternalContextAdapter internalContextAdapter,
+ Writer writer,
+ Node node) throws IOException,
ResourceNotFoundException, ParseErrorException, MethodInvocationException {
+
+ if (node.jjtGetNumChildren() != 1) {
+ rsvc.error("#" + getName() + " - Wrong number of arguments");
+ return false;
+ }
+
+ final Object nodeValue =
node.jjtGetChild(0).value(internalContextAdapter);
+ if(nodeValue == null) {
+ // No need to do anything since the string is empty anyway
+ writer.write("");
+ return true;
+
+ }
+ final String originalString = nodeValue.toString();
+ final int index = originalString.lastIndexOf("/");
+ if(index == -1)
+ {
+ writer.write(originalString);
+ }
+ else{
+
writer.write(originalString.substring(index+1,originalString.length()));
+ }
+ return true;
+ }
+}
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/VelocityEngineFactory.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/VelocityEngineFactory.java
2007-03-11 19:56:20 UTC (rev 4558)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/view/velocity/VelocityEngineFactory.java
2007-03-12 11:29:14 UTC (rev 4559)
@@ -91,7 +91,8 @@
+
"no.schibstedsok.searchportal.view.velocity.DateFormattingDirective,"
+ "no.schibstedsok.searchportal.view.velocity.BoldWordDirective,"
+
"no.schibstedsok.searchportal.view.velocity.ChannelCategoryListDirective,"
- +
"no.schibstedsok.searchportal.view.velocity.RemovePrefixDirective";
+ +
"no.schibstedsok.searchportal.view.velocity.RemovePrefixDirective,"
+ +
"no.schibstedsok.searchportal.view.velocity.SlashTrimStringDirective";
// Attributes ----------------------------------------------------
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits