[Jsptest-svn-commits] SF.net SVN: jsptest:[243] trunk/jsptest-jsp20/src/main/java/org/apache/ jasp
Status: Alpha
Brought to you by:
lkoskela
From: <lko...@us...> - 2008-11-07 23:01:04
|
Revision: 243 http://jsptest.svn.sourceforge.net/jsptest/?rev=243&view=rev Author: lkoskela Date: 2008-11-07 23:00:53 +0000 (Fri, 07 Nov 2008) Log Message: ----------- Removed a bit of duplication. Modified Paths: -------------- trunk/jsptest-jsp20/src/main/java/org/apache/jasper/compiler/MockTagPluginManager.java Modified: trunk/jsptest-jsp20/src/main/java/org/apache/jasper/compiler/MockTagPluginManager.java =================================================================== --- trunk/jsptest-jsp20/src/main/java/org/apache/jasper/compiler/MockTagPluginManager.java 2008-11-07 22:21:33 UTC (rev 242) +++ trunk/jsptest-jsp20/src/main/java/org/apache/jasper/compiler/MockTagPluginManager.java 2008-11-07 23:00:53 UTC (rev 243) @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; import javax.servlet.ServletContext; +import javax.servlet.jsp.tagext.TagInfo; import net.sf.jsptest.TagKey; import org.apache.jasper.JasperException; import org.apache.jasper.compiler.Node.Nodes; @@ -37,34 +38,39 @@ } private void replaceTaglibs(Nodes nodes) throws JasperException { - nodes.visit(new Node.Visitor() { + nodes.visit(new TagSubstitutor() { - public void visit(Node.CustomTag n) throws JasperException { - String tagName = n.getTagInfo().getTagLibrary().getPrefixString(); - Class mockClass = (Class) mockTaglibs.get(tagName); - if (mockClass != null) { - n.setTagHandlerClass(mockClass); - } - super.visit(n); + protected Class substitute(TagInfo tagInfo) { + String tagName = tagInfo.getTagLibrary().getPrefixString(); + return (Class) mockTaglibs.get(tagName); } }); } private void replaceTags(Nodes nodes) throws JasperException { - nodes.visit(new Node.Visitor() { + nodes.visit(new TagSubstitutor() { - public void visit(Node.CustomTag n) throws JasperException { - String prefix = n.getTagInfo().getTagLibrary().getPrefixString(); - String name = n.getTagInfo().getTagName(); - Class mockClass = (Class) mockTags.get(new TagKey(prefix, name)); - if (mockClass != null) { - n.setTagHandlerClass(mockClass); - } - super.visit(n); + protected Class substitute(TagInfo tagInfo) { + String prefix = tagInfo.getTagLibrary().getPrefixString(); + String name = tagInfo.getTagName(); + return (Class) mockTags.get(new TagKey(prefix, name)); } }); } + private static abstract class TagSubstitutor extends Node.Visitor { + + public void visit(Node.CustomTag n) throws JasperException { + Class mockClass = substitute(n.getTagInfo()); + if (mockClass != null) { + n.setTagHandlerClass(mockClass); + } + super.visit(n); + } + + protected abstract Class substitute(TagInfo tagInfo); + } + private void assignToPrivateField(String fieldName, Object value) { try { Field field = getClass().getSuperclass().getDeclaredField(fieldName); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |