Dave Jarvis' Repositories

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

Code reorg, renames, clarifications, fix potential status bar bug

AuthorDaveJarvis <email>
Date2020-06-07 10:09:24 GMT-0700
Commite200f86f18ddee536686c758c0fe9751224c6b92
Parentc49ce21
Delta78 lines added, 9 lines removed, 69-line increase
src/main/java/com/scrivenvar/service/events/impl/DefaultNotifier.java
public final class DefaultNotifier extends Observable implements Notifier {
- private final static String OK = get( STATUS_BAR_OK );
-
- public DefaultNotifier() {
- }
+ private final static String OK = get( STATUS_BAR_OK, "OK" );
/**
src/main/java/com/scrivenvar/processors/DefinitionProcessor.java
+/*
+ * Copyright 2016 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 static com.scrivenvar.processors.text.TextReplacementFactory.replace;
+
+import java.util.Map;
+
+/**
+ * Processes interpolated string definitions in the document and inserts
+ * their values into the post-processed text. The default variable syntax is
+ * {@code $variable$}.
+ *
+ * @author White Magic Software, Ltd.
+ */
+public class DefinitionProcessor extends AbstractProcessor<String> {
+
+ private final Map<String, String> mDefinitions;
+
+ public DefinitionProcessor(
+ final Processor<String> successor, final Map<String, String> map ) {
+ super( successor );
+ mDefinitions = map;
+ }
+
+ /**
+ * Processes the given text document by replacing variables with their values.
+ *
+ * @param text The document text that includes variables that should be
+ * replaced with values when rendered as HTML.
+ * @return The text with all variables replaced.
+ */
+ @Override
+ public String processLink( final String text ) {
+ return replace( text, getDefinitions() );
+ }
+
+ /**
+ * Returns the map to use for variable substitution.
+ *
+ * @return A map of variable names to values.
+ */
+ protected Map<String, String> getDefinitions() {
+ return mDefinitions;
+ }
+
+}
src/main/java/com/scrivenvar/processors/InlineRProcessor.java
* @author White Magic Software, Ltd.
*/
-public final class InlineRProcessor extends DefaultVariableProcessor {
+public final class InlineRProcessor extends DefinitionProcessor {
private static final Notifier NOTIFIER = Services.load( Notifier.class );
src/main/java/com/scrivenvar/processors/ProcessorFactory.java
tpc, caret );
- return new DefaultVariableProcessor( cip, getResolvedMap() );
+ return new DefinitionProcessor( cip, getResolvedMap() );
}
protected Processor<String> createXMLProcessor( final FileEditorTab tab ) {
final ObservableValue<Integer> caret = tab.caretPositionProperty();
final Processor<String> tpc = getCommonProcessor();
final Processor<String> xmlp = new XMLProcessor( tpc, tab.getPath() );
- final Processor<String> dvp = new DefaultVariableProcessor(
+ final Processor<String> dp = new DefinitionProcessor(
xmlp, getResolvedMap() );
- return createXMLInsertionProcessor( dvp, caret );
+ return createXMLInsertionProcessor( dp, caret );
}
src/main/java/com/scrivenvar/processors/RVariableProcessor.java
* @author White Magic Software, Ltd.
*/
-public class RVariableProcessor extends DefaultVariableProcessor {
+public class RVariableProcessor extends DefinitionProcessor {
public RVariableProcessor(