Dave Jarvis' Repositories

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

Uses EnumMap instead of Map

AuthorDave Jarvis <email>
Date2023-07-26 01:30:19 GMT-0700
Commit68d755291b1348f92e93ae2f560fcb40eb161500
Parentee98e47
src/main/java/com/whitemagicsoftware/keenquotes/parser/Curler.java
* Resolves straight quotes into curly quotes throughout a document.
*/
-@SuppressWarnings( "unused" )
public class Curler implements Function<String, String> {
src/main/java/com/whitemagicsoftware/keenquotes/parser/Token.java
import com.whitemagicsoftware.keenquotes.lex.LexemeGlyph;
+import java.util.EnumMap;
import java.util.Map;
import static com.whitemagicsoftware.keenquotes.lex.LexemeGlyph.*;
import static com.whitemagicsoftware.keenquotes.parser.TokenType.*;
-import static java.util.Map.entry;
-import static java.util.Map.ofEntries;
/**
* Represents a high-level token read from a text document.
*/
final class Token implements Comparable<Token>, Stem {
/**
* Provides an entity-based set of {@link Token} replacements.
*/
- private static final Map<TokenType, String> ENTITIES = ofEntries(
- entry( QUOTE_OPENING_SINGLE, "&lsquo;" ),
- entry( QUOTE_CLOSING_SINGLE, "&rsquo;" ),
- entry( QUOTE_OPENING_DOUBLE, "&ldquo;" ),
- entry( QUOTE_CLOSING_DOUBLE, "&rdquo;" ),
- entry( QUOTE_STRAIGHT_SINGLE, "'" ),
- entry( QUOTE_STRAIGHT_DOUBLE, "\"" ),
- entry( QUOTE_APOSTROPHE, "&apos;" ),
- entry( QUOTE_PRIME_SINGLE, "&prime;" ),
- entry( QUOTE_PRIME_DOUBLE, "&Prime;" ),
- entry( QUOTE_PRIME_TRIPLE, "&tprime;" ),
- entry( QUOTE_PRIME_QUADRUPLE, "&qprime;" )
- );
+ private static final Map<TokenType, String> ENTITIES =
+ new EnumMap<>( TokenType.class );
+
+ static {
+ ENTITIES.put( QUOTE_OPENING_SINGLE, "&lsquo;" );
+ ENTITIES.put( QUOTE_CLOSING_SINGLE, "&rsquo;" );
+ ENTITIES.put( QUOTE_OPENING_DOUBLE, "&ldquo;" );
+ ENTITIES.put( QUOTE_CLOSING_DOUBLE, "&rdquo;" );
+ ENTITIES.put( QUOTE_STRAIGHT_SINGLE, "'" );
+ ENTITIES.put( QUOTE_STRAIGHT_DOUBLE, "\"" );
+ ENTITIES.put( QUOTE_APOSTROPHE, "&apos;" );
+ ENTITIES.put( QUOTE_PRIME_SINGLE, "&prime;" );
+ ENTITIES.put( QUOTE_PRIME_DOUBLE, "&Prime;" );
+ ENTITIES.put( QUOTE_PRIME_TRIPLE, "&tprime;" );
+ ENTITIES.put( QUOTE_PRIME_QUADRUPLE, "&qprime;" );
+ }
/**
* Provides a character-based set of {@link Token} replacements.
*/
- private static final Map<TokenType, String> CHARS = ofEntries(
- entry( QUOTE_OPENING_SINGLE, "‘" ),
- entry( QUOTE_CLOSING_SINGLE, "’" ),
- entry( QUOTE_OPENING_DOUBLE, "“" ),
- entry( QUOTE_CLOSING_DOUBLE, "”" ),
- entry( QUOTE_STRAIGHT_SINGLE, "'" ),
- entry( QUOTE_STRAIGHT_DOUBLE, "\"" ),
- entry( QUOTE_APOSTROPHE, "’" ),
- entry( QUOTE_PRIME_SINGLE, "′" ),
- entry( QUOTE_PRIME_DOUBLE, "″" ),
- entry( QUOTE_PRIME_TRIPLE, "‴" ),
- entry( QUOTE_PRIME_QUADRUPLE, "⁗" )
- );
+ private static final Map<TokenType, String> CHARS =
+ new EnumMap<>( TokenType.class );
+
+ static {
+ CHARS.put( QUOTE_OPENING_SINGLE, "‘" );
+ CHARS.put( QUOTE_CLOSING_SINGLE, "’" );
+ CHARS.put( QUOTE_OPENING_DOUBLE, "“" );
+ CHARS.put( QUOTE_CLOSING_DOUBLE, "”" );
+ CHARS.put( QUOTE_STRAIGHT_SINGLE, "'" );
+ CHARS.put( QUOTE_STRAIGHT_DOUBLE, "\"" );
+ CHARS.put( QUOTE_APOSTROPHE, "’" );
+ CHARS.put( QUOTE_PRIME_SINGLE, "′" );
+ CHARS.put( QUOTE_PRIME_DOUBLE, "″" );
+ CHARS.put( QUOTE_PRIME_TRIPLE, "‴" );
+ CHARS.put( QUOTE_PRIME_QUADRUPLE, "⁗" );
+ }
/**
* Glyphs not found in the table will use the document's glyph.
*/
- private static final Map<LexemeGlyph, String> I18N_ENTITIES = ofEntries(
- entry( LEX_DOUBLE_QUOTE_OPENING_LOW, "&ldquor;" ),
- entry( LEX_DOUBLE_CHEVRON_LEFT, "&laquo;" ),
- entry( LEX_DOUBLE_CHEVRON_RIGHT, "&raquo;" ),
- entry( LEX_SINGLE_CHEVRON_LEFT, "&lsaquo;" ),
- entry( LEX_SINGLE_CHEVRON_RIGHT, "&rsaquo;" )
- );
+ private static final Map<LexemeGlyph, String> I18N_ENTITIES =
+ new EnumMap<>( LexemeGlyph.class );
+
+ static {
+ I18N_ENTITIES.put( LEX_DOUBLE_QUOTE_OPENING_LOW, "&ldquor;" );
+ I18N_ENTITIES.put( LEX_DOUBLE_CHEVRON_LEFT, "&laquo;" );
+ I18N_ENTITIES.put( LEX_DOUBLE_CHEVRON_RIGHT, "&raquo;" );
+ I18N_ENTITIES.put( LEX_SINGLE_CHEVRON_LEFT, "&lsaquo;" );
+ I18N_ENTITIES.put( LEX_SINGLE_CHEVRON_RIGHT, "&rsaquo;" );
+ }
/**
src/main/java/com/whitemagicsoftware/keenquotes/parser/Tree.java
* Subtrees and {@link Token}s.
*/
- private final Collection<Stem> mStems = new LinkedHashSet<>( 128 );
+ private final Set<Stem> mStems = new LinkedHashSet<>( 128 );
/**
Delta44 lines added, 37 lines removed, 7-line increase