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.
|