You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2020/03/14 17:45:07 UTC

[logging-log4j2] 04/05: Improve toString representation

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

mattsicker pushed a commit to branch mean-bean-machine
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit e255f431cc40b0172f694108c03a906c9ca77d41
Author: Matt Sicker <bo...@gmail.com>
AuthorDate: Sat Mar 14 12:31:03 2020 -0500

    Improve toString representation
    
    Signed-off-by: Matt Sicker <bo...@gmail.com>
---
 .../log4j/plugins/spi/model/Qualifiers.java        | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
index 409890c..19c500b 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
@@ -22,6 +22,7 @@ import org.apache.logging.log4j.plugins.api.Default;
 import org.apache.logging.log4j.plugins.api.Ignore;
 import org.apache.logging.log4j.plugins.api.Named;
 import org.apache.logging.log4j.plugins.spi.InjectionException;
+import org.apache.logging.log4j.util.StringBuilders;
 import org.apache.logging.log4j.util.Strings;
 
 import java.lang.annotation.Annotation;
@@ -32,6 +33,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 
 /**
  * Represents a normalized set of {@linkplain org.apache.logging.log4j.plugins.api.QualifierType qualifier annotations}.
@@ -62,7 +64,25 @@ public final class Qualifiers {
 
     @Override
     public String toString() {
-        return qualifiers.toString();
+        final Set<Map.Entry<Class<? extends Annotation>, Map<String, Object>>> entries = qualifiers.entrySet();
+        if (entries.isEmpty()) {
+            return "[]";
+        }
+        StringBuilder sb = new StringBuilder().append('[');
+        for (final Map.Entry<Class<? extends Annotation>, Map<String, Object>> entry : entries) {
+            sb.append('@').append(entry.getKey().getSimpleName());
+            final Map<String, Object> attributes = entry.getValue();
+            if (!attributes.isEmpty()) {
+                sb.append('(');
+                for (final Map.Entry<String, Object> attribute : attributes.entrySet()) {
+                    StringBuilders.appendKeyDqValue(sb, attribute.getKey(), attribute.getValue());
+                    sb.append(", ");
+                }
+                sb.delete(sb.length() - 2, sb.length()).append(')');
+            }
+            sb.append(", ");
+        }
+        return sb.delete(sb.length() - 2, sb.length()).append(']').toString();
     }
 
     /**