From: <bra...@us...> - 2011-05-25 19:40:35
|
Revision: 3460 http://archive-access.svn.sourceforge.net/archive-access/?rev=3460&view=rev Author: bradtofel Date: 2011-05-25 19:40:28 +0000 (Wed, 25 May 2011) Log Message: ----------- FEATURE: added code to allow parseStart and parseComplete event handlers Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlSAXRewriteReplayRenderer.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/FastArchivalUrlReplayParseEventHandler.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/ReplayParseEventDelegator.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventDelegator.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventHandler.java Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/handlers/ParseStartHandler.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlSAXRewriteReplayRenderer.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlSAXRewriteReplayRenderer.java 2011-05-25 01:51:34 UTC (rev 3459) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/ArchivalUrlSAXRewriteReplayRenderer.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -167,6 +167,7 @@ ContextAwareLexer lex = new ContextAwareLexer(lexer, context); Node node; try { + delegator.handleParseStart(context); while((node = lex.nextNode()) != null) { delegator.handleNode(context, node); } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/FastArchivalUrlReplayParseEventHandler.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/FastArchivalUrlReplayParseEventHandler.java 2011-05-25 01:51:34 UTC (rev 3459) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/archivalurl/FastArchivalUrlReplayParseEventHandler.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -57,7 +57,8 @@ FastArchivalUrlReplayParseEventHandler.class.toString(); private String jspInsertPath = "/WEB-INF/replay/DisclaimChooser.jsp"; - private String commentJsp = "/WEB-INF/replay/ArchiveComment.jsp"; + private String endJsp = "/WEB-INF/replay/ArchiveComment.jsp"; + private String startJsp = null; private final String[] okHeadTags = { "![CDATA[*", "![CDATA[", "?", "!DOCTYPE", "HTML", "HEAD", "BASE", "LINK", "META", "TITLE", @@ -332,13 +333,14 @@ } return false; } + public void handleParseComplete(ParseContext pContext) throws IOException { - if(commentJsp != null) { + if(endJsp != null) { ReplayParseContext context = (ReplayParseContext) pContext; OutputStream out = context.getOutputStream(); String tmp = null; try { - tmp = context.getJspExec().jspToString(commentJsp); + tmp = context.getJspExec().jspToString(endJsp); } catch (ServletException e) { e.printStackTrace(); } @@ -350,6 +352,24 @@ } } + public void handleParseStart(ParseContext pContext) throws IOException { + if(startJsp != null) { + ReplayParseContext context = (ReplayParseContext) pContext; + OutputStream out = context.getOutputStream(); + String tmp = null; + try { + tmp = context.getJspExec().jspToString(startJsp); + } catch (ServletException e) { + e.printStackTrace(); + } + if(tmp != null) { +// Charset charset = Charset.forName(context.getOutputCharset()); + String charset = context.getOutputCharset(); + out.write(tmp.getBytes(charset)); + } + } + } + /** * @return the jspInsertPath */ @@ -366,15 +386,47 @@ /** * @return the commentJsp + * @deprecated use getEndJsp() */ public String getCommentJsp() { - return commentJsp; + return getEndJsp(); } /** * @param commentJsp the commentJsp to set + * @deprecated use setEndJsp() */ public void setCommentJsp(String commentJsp) { - this.commentJsp = commentJsp; + setEndJsp(commentJsp); } + /** + * @return the path to the JSP to execute and include at the start of the + * document + */ + public String getStartsp() { + return startJsp; + } + + /** + * @param endJsp the path to the JSP to execute and include at the start + * of the document + */ + public void setStartJsp(String startJsp) { + this.startJsp = startJsp; + } + /** + * @return the path to the JSP to execute and include at the end of the + * document + */ + public String getEndJsp() { + return endJsp; + } + + /** + * @param endJsp the path to the JSP to execute and include at the end + * of the document + */ + public void setEndJsp(String endJsp) { + this.endJsp = endJsp; + } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/ReplayParseEventDelegator.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/ReplayParseEventDelegator.java 2011-05-25 01:51:34 UTC (rev 3459) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/html/ReplayParseEventDelegator.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -84,6 +84,12 @@ } + public void handleParseStart(ParseContext context) throws IOException { + preModifyDelegator.handleParseStart(context); + modifyDelegator.handleParseStart(context); + postModifyDelegator.handleParseStart(context); + } + public void handleParseComplete(ParseContext context) throws IOException { preModifyDelegator.handleParseComplete(context); modifyDelegator.handleParseComplete(context); Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventDelegator.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventDelegator.java 2011-05-25 01:51:34 UTC (rev 3459) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventDelegator.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -31,6 +31,7 @@ import org.archive.wayback.util.htmllex.handlers.JSTextHandler; import org.archive.wayback.util.htmllex.handlers.OpenTagHandler; import org.archive.wayback.util.htmllex.handlers.ParseCompleteHandler; +import org.archive.wayback.util.htmllex.handlers.ParseStartHandler; import org.archive.wayback.util.htmllex.handlers.RemarkTextHandler; import org.htmlparser.Node; import org.htmlparser.nodes.RemarkNode; @@ -71,6 +72,7 @@ private List<RemarkTextHandler> remarkTextHandler = null; private List<ContentTextHandler> contentTextHandler = null; private List<ParseCompleteHandler> parseCompleteHandlers = null; + private List<ParseStartHandler> parseStartHandlers = null; private List<ParseEventDelegatorVisitor> parserVisitors = null; @@ -234,6 +236,20 @@ } } + public void addParseStartHandler(ParseStartHandler v) { + if(parseStartHandlers == null) { + parseStartHandlers = new ArrayList<ParseStartHandler>(); + } + parseStartHandlers.add(v); + } + public void handleParseStart(ParseContext context) throws IOException { + if(parseStartHandlers != null) { + for(ParseStartHandler v : parseStartHandlers) { + v.handleParseStart(context); + } + } + } + /** * @return the parserVisitors */ Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventHandler.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventHandler.java 2011-05-25 01:51:34 UTC (rev 3459) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/ParseEventHandler.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -32,6 +32,8 @@ * */ public interface ParseEventHandler { + + public void handleParseStart(ParseContext context) throws IOException; public void handleNode(ParseContext context, Node node) throws IOException; public void handleParseComplete(ParseContext context) throws IOException; Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/handlers/ParseStartHandler.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/handlers/ParseStartHandler.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/htmllex/handlers/ParseStartHandler.java 2011-05-25 19:40:28 UTC (rev 3460) @@ -0,0 +1,10 @@ +package org.archive.wayback.util.htmllex.handlers; + +import java.io.IOException; + +import org.archive.wayback.util.htmllex.ParseContext; + +public interface ParseStartHandler { + public void handleParseStart(ParseContext context) + throws IOException; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |