You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/09/29 11:09:36 UTC

[isis] 03/05: ISIS-2086: cleans up implementation of PatternsConverter component

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 264f9f0c3b88fdbf4da624af7b2c98d417d3c9cc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 11:53:16 2019 +0100

    ISIS-2086: cleans up implementation of PatternsConverter component
    
    (cherry picked from commit 8a69f3d5ce52e2eb66c0a03633144a469f6f2221)
---
 .../org/apache/isis/config/IsisConfiguration.java  | 26 +++++++++++++++-------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index dc6420a..9a5d947 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -441,30 +441,40 @@ public class IsisConfiguration {
             return toPatternMap(source);
         }
 
-        private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
+        /**
+         * The pattern matches definitions like:
+         * <ul>
+         * <li>methodNameRegex:value</li>
+         * </ul>
+         *
+         * <p>
+         *     Used for associating cssClass and cssClassFa (font awesome icon) values to method pattern names.
+         * </p>
+         */
+        private final static Pattern PATTERN_FOR_COLON_SEPARATED_PAIR = Pattern.compile("(?<methodRegex>[^:]+):(?<value>.+)");
 
         private static Map<Pattern, String> toPatternMap(String cssClassPatterns) {
-            final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
+            final Map<Pattern,String> valueByPattern = _Maps.newLinkedHashMap();
             if(cssClassPatterns != null) {
                 final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
-                final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
+                final Map<String,String> valueByRegex = _Maps.newLinkedHashMap();
                 while (regexToCssClasses.hasMoreTokens()) {
                     String regexToCssClass = regexToCssClasses.nextToken().trim();
                     if (_Strings.isNullOrEmpty(regexToCssClass)) {
                         continue;
                     }
-                    final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
+                    final Matcher matcher = PATTERN_FOR_COLON_SEPARATED_PAIR.matcher(regexToCssClass);
                     if(matcher.matches()) {
-                        cssClassByRegex.put(matcher.group(1), matcher.group(2));
+                        valueByRegex.put(matcher.group("methodRegex"), matcher.group("value"));
                     }
                 }
-                for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
+                for (Map.Entry<String, String> entry : valueByRegex.entrySet()) {
                     final String regex = entry.getKey();
                     final String cssClass = entry.getValue();
-                    cssClassByPattern.put(Pattern.compile(regex), cssClass);
+                    valueByPattern.put(Pattern.compile(regex), cssClass);
                 }
             }
-            return cssClassByPattern;
+            return valueByPattern;
         }
 
     }