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:37 UTC

[isis] 04/05: ISIS-2086: refactors "isis.reflector.facet.cssClassFa.patterns" to type-safe

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 31d1dd1506cf1cce758615cfdbef3d7e1204e1be
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 11:56:34 2019 +0100

    ISIS-2086: refactors "isis.reflector.facet.cssClassFa.patterns" to type-safe
    
    also registers IsisConfiguration.PatternsConverter as a managed bean
    
    (cherry picked from commit 537148a800aeb16533aab6ec3f0cf2b3d895f7c9)
---
 .../org/apache/isis/config/IsisConfigModule.java   |  9 +++----
 .../org/apache/isis/config/IsisConfiguration.java  |  7 +++++-
 .../annotprop/CssClassFaFacetOnMemberFactory.java  | 28 +---------------------
 3 files changed, 12 insertions(+), 32 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java b/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
index bcb5077..18bbe2a 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
@@ -20,12 +20,13 @@ package org.apache.isis.config;
 
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
-//@Import({
-//    IsisConfiguration.class // not required
-//XXX if this module would contribute any managed beans, these would go here
-//})
+@Import({
+    //IsisConfiguration.class // not required
+    IsisConfiguration.PatternsConverter.class
+})
 @EnableConfigurationProperties(IsisConfiguration.class)
 public class IsisConfigModule {
 
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 9a5d947..98864df 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
@@ -94,12 +94,17 @@ public class IsisConfiguration {
                 }
             }
 
-             // isis.reflector.facet.cssClass.patterns
             private final CssClass cssClass = new CssClass();
             @Data
             public static class CssClass {
                 private Map<Pattern, String> patterns = new HashMap<>();
             }
+            private final CssClassFa cssClassFa = new CssClassFa();
+            @Data
+            public static class CssClassFa {
+                private Map<Pattern, String> patterns = new HashMap<>();
+            }
+
 
             private final DomainObjectAnnotation domainObjectAnnotation = new DomainObjectAnnotation();
             @Data
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index 284bf44..e8ed533 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -97,36 +97,10 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
     }
 
     private Map<Pattern, String> faIconByPattern;
-
     private Map<Pattern, String> getFaIconByPattern() {
         if (faIconByPattern == null) {
             // build lazily
-            final String cssClassFaPatterns = getConfigurationLegacy().getString("isis.reflector.facet.cssClassFa.patterns");
-            this.faIconByPattern = buildFaIconByPattern(cssClassFaPatterns);
-        }
-        return faIconByPattern;
-    }
-
-    private static Map<Pattern, String> buildFaIconByPattern(String cssClassFaPatterns) {
-        final Map<Pattern, String> faIconByPattern = _Maps.newLinkedHashMap();
-        if (cssClassFaPatterns != null) {
-            final StringTokenizer regexToFaIcons = new StringTokenizer(cssClassFaPatterns, ConfigurationConstants.LIST_SEPARATOR);
-            final Map<String, String> faIconByRegex = _Maps.newLinkedHashMap();
-            while (regexToFaIcons.hasMoreTokens()) {
-                String regexToFaIcon = regexToFaIcons.nextToken().trim();
-                if (_Strings.isNullOrEmpty(regexToFaIcon)) {
-                    continue;
-                }
-                final Matcher matcher = FA_ICON_REGEX_PATTERN.matcher(regexToFaIcon);
-                if (matcher.matches()) {
-                    faIconByRegex.put(matcher.group(1), matcher.group(2));
-                }
-            }
-            for (Map.Entry<String, String> entry : faIconByRegex.entrySet()) {
-                final String regex = entry.getKey();
-                final String faIcon = entry.getValue();
-                faIconByPattern.put(Pattern.compile(regex), faIcon);
-            }
+            this.faIconByPattern = getConfiguration().getReflector().getFacet().getCssClassFa().getPatterns();
         }
         return faIconByPattern;
     }