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

Reply via email to