Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Move chain processing into main, preparing for reuse of processing chain

AuthorDaveJarvis <email>
Date2020-07-01 16:13:07 GMT-0700
Commit8217356208abc4e44225aece9355a31caa4367a2
Parent6bcd94b
Delta7 lines added, 89 lines removed, 82-line decrease
src/main/java/com/scrivenvar/processors/markdown/MarkdownProcessor.java
*/
@Override
- public String processLink( final String markdown ) {
+ public String process( final String markdown ) {
return toHtml( markdown );
}
src/main/java/com/scrivenvar/processors/DefinitionProcessor.java
*/
@Override
- public String processLink( final String text ) {
+ public String process( final String text ) {
return replace( text, getDefinitions() );
}
src/main/java/com/scrivenvar/processors/HTMLPreviewProcessor.java
-/*
- * Copyright 2020 White Magic Software, Ltd.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * o Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * o Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package com.scrivenvar.processors;
-
-import com.scrivenvar.preview.HTMLPreviewPane;
-
-/**
- * Responsible for notifying the HTMLPreviewPane when the succession chain has
- * updated. This decouples knowledge of changes to the editor panel from the
- * HTML preview panel as well as any processing that takes place before the
- * final HTML preview is rendered. This should be the last link in the processor
- * chain.
- */
-public class HTMLPreviewProcessor extends AbstractProcessor<String> {
-
- // There is only one preview panel.
- private static HTMLPreviewPane sHtmlPreviewPane;
-
- /**
- * Constructs the end of a processing chain.
- *
- * @param htmlPreviewPane The pane to update with the post-processed document.
- */
- public HTMLPreviewProcessor( final HTMLPreviewPane htmlPreviewPane ) {
- sHtmlPreviewPane = htmlPreviewPane;
- }
-
- /**
- * Update the preview panel using HTML from the succession chain.
- *
- * @param html The document content to render in the preview pane. The HTML
- * should not contain a doctype, head, or body tag, only content to render
- * within the body.
- *
- * @return null
- */
- @Override
- public String processLink( final String html ) {
- getHtmlPreviewPane().update( html );
-
- // No more processing required.
- return null;
- }
-
- private HTMLPreviewPane getHtmlPreviewPane() {
- return sHtmlPreviewPane;
- }
-}
src/main/java/com/scrivenvar/processors/IdentityProcessor.java
*/
@Override
- public String processLink( final String t ) {
+ public String process( final String t ) {
return "<pre>" + t + "</pre>";
}
src/main/java/com/scrivenvar/processors/InlineRProcessor.java
*/
@Override
- public String processLink( final String text ) {
+ public String process( final String text ) {
final int length = text.length();
final int prefixLength = PREFIX.length();
src/main/java/com/scrivenvar/processors/Processor.java
/**
- * Provided so that the chain can be invoked from any link using a given
- * value. This should be called automatically by a superclass so that
- * the links in the chain need only implement the processLink method.
- *
- * @param t The value to pass along to each link in the chain.
- */
- void processChain( T t );
-
- /**
* Processes the given content providing a transformation from one document
* format into another. For example, this could convert from XML to text using
* an XSLT processor, or from markdown to HTML.
*
* @param t The type of object to process.
* @return The post-processed document, or null if processing should stop.
*/
- T processLink( T t );
+ T process( T t );
/**
src/main/java/com/scrivenvar/processors/ProcessorFactory.java
private Processor<String> createHTMLPreviewProcessor() {
- return new HTMLPreviewProcessor( getPreviewPane() );
+ return getPreviewPane();
}
src/main/java/com/scrivenvar/processors/XMLProcessor.java
*/
@Override
- public String processLink( final String text ) {
+ public String process( final String text ) {
try {
return text.isEmpty() ? text : transform( text );