You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2016/08/16 13:51:51 UTC

[14/15] incubator-tamaya git commit: Added toString implementations.

Added toString implementations.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/4a3388d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/4a3388d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/4a3388d7

Branch: refs/heads/master
Commit: 4a3388d77729d0d4b1b34281e95d6bfce56c59df
Parents: 11db7b0
Author: anatole <an...@apache.org>
Authored: Tue Aug 16 10:54:30 2016 +0200
Committer: anatole <an...@apache.org>
Committed: Tue Aug 16 15:51:30 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/tamaya/Configuration.java   |  2 +-
 .../apache/tamaya/spi/ConfigurationContext.java |  9 +-
 .../internal/DefaultConfigurationContext.java   | 97 ++++++++++++++++++++
 .../core/internal/PropertyConverterManager.java | 16 ++++
 4 files changed, 122 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4a3388d7/code/api/src/main/java/org/apache/tamaya/Configuration.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/Configuration.java b/code/api/src/main/java/org/apache/tamaya/Configuration.java
index 0af0cf4..12e38aa 100644
--- a/code/api/src/main/java/org/apache/tamaya/Configuration.java
+++ b/code/api/src/main/java/org/apache/tamaya/Configuration.java
@@ -151,7 +151,7 @@ public interface Configuration {
     <T> T query(ConfigQuery<T> query);
 
     /**
-     * Access a configuration\u015d context.
+     * Access a configuration'\u015d context.
      * @return the configuration context, never null.
      */
     ConfigurationContext getContext();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4a3388d7/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java
----------------------------------------------------------------------
diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java
index d61bde7..3a757a0 100644
--- a/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java
+++ b/code/api/src/main/java/org/apache/tamaya/spi/ConfigurationContext.java
@@ -21,7 +21,6 @@ package org.apache.tamaya.spi;
 
 import org.apache.tamaya.TypeLiteral;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -55,6 +54,13 @@ public interface ConfigurationContext {
     List<PropertySource> getPropertySources();
 
 
+//    /**
+//     * Access a {@link PropertySource} using its (unique) name.
+//     * @param name the propoerty source's name, not null.
+//     * @return the propoerty source found, or null.
+//     */
+//    PropertySource getPropertySource(String name);
+
     /**
      * This method can be used for programmatically adding {@link PropertyConverter}s.
      * It is not needed for normal 'usage' by end users, but only for Extension Developers!
@@ -65,6 +71,7 @@ public interface ConfigurationContext {
      */
     <T> void addPropertyConverter(TypeLiteral<T> typeToConvert, PropertyConverter<T> propertyConverter);
 
+
     /**
      * <p>
      * This method returns the Map of registered PropertyConverters

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4a3388d7/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContext.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContext.java b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContext.java
index b0533b0..a1a2f64 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContext.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContext.java
@@ -180,6 +180,93 @@ public class DefaultConfigurationContext implements ConfigurationContext {
         }
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof DefaultConfigurationContext)) return false;
+
+        DefaultConfigurationContext that = (DefaultConfigurationContext) o;
+
+        if (!propertyConverterManager.equals(that.propertyConverterManager)) return false;
+        if (!immutablePropertySources.equals(that.immutablePropertySources)) return false;
+        if (!immutablePropertyFilters.equals(that.immutablePropertyFilters)) return false;
+        return getPropertyValueCombinationPolicy().equals(that.getPropertyValueCombinationPolicy());
+
+    }
+
+    @Override
+    public int hashCode() {
+        int result = propertyConverterManager.hashCode();
+        result = 31 * result + immutablePropertySources.hashCode();
+        result = 31 * result + immutablePropertyFilters.hashCode();
+        result = 31 * result + getPropertyValueCombinationPolicy().hashCode();
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder b = new StringBuilder("ConfigurationContext{\n");
+        b.append("  Property Sources\n");
+        b.append("  ----------------\n");
+        b.append("  CLASS                         NAME                                                                  ORDINAL SCANNABLE SIZE\n");
+        for(PropertySource ps:getPropertySources()){
+            b.append("  ");
+            appendFormatted(b, ps.getClass().getSimpleName(), 30);
+            appendFormatted(b, ps.getName(), 70);
+            appendFormatted(b, String.valueOf(ps.getOrdinal()), 8);
+            appendFormatted(b, String.valueOf(ps.isScannable()), 10);
+            if(ps.isScannable()) {
+                appendFormatted(b, String.valueOf(ps.getProperties().size()), 8);
+            }else{
+                appendFormatted(b, "-", 8);
+            }
+            b.append('\n');
+        }
+        b.append("\n");
+        b.append("  Property Filters\n");
+        b.append("  ----------------\n");
+        b.append("  CLASS                         INFO\n");
+        for(PropertyFilter filter:getPropertyFilters()){
+            b.append("  ");
+            appendFormatted(b, filter.getClass().getSimpleName(), 30);
+            b.append(removeNewLines(filter.toString()));
+            b.append('\n');
+        }
+        b.append("\n\n");
+        b.append("  Property Converters\n");
+        b.append("  -------------------\n");
+        b.append("  CLASS                         TYPE                          INFO\n");
+        for(Map.Entry<TypeLiteral<?>, List<PropertyConverter<?>>> converterEntry:getPropertyConverters().entrySet()){
+            for(PropertyConverter converter: converterEntry.getValue()){
+                b.append("  ");
+                appendFormatted(b, converter.getClass().getSimpleName(), 30);
+                appendFormatted(b, converterEntry.getKey().getRawType().getSimpleName(), 30);
+                b.append(removeNewLines(converter.toString()));
+                b.append('\n');
+            }
+        }
+        b.append('}');
+        return b.toString();
+    }
+
+    private void appendFormatted(StringBuilder b, String text, int length) {
+        int padding;
+        if(text.length() <= (length)){
+            b.append(text);
+            padding = length - text.length();
+        }else{
+            b.append(text.substring(0, length-1));
+            padding = 1;
+        }
+        for(int i=0;i<padding;i++){
+            b.append(' ');
+        }
+    }
+
+    private String removeNewLines(String s) {
+        return s.replace('\n', ' ').replace('\r', ' ');
+    }
+
     private static class PropertySourceComparator implements Comparator<PropertySource>, Serializable {
 
         private static final long serialVersionUID = 1L;
@@ -244,6 +331,16 @@ public class DefaultConfigurationContext implements ConfigurationContext {
         return immutablePropertySources;
     }
 
+//    @Override
+//    public PropertySource getPropertySource(String name) {
+//        for(PropertySource ps:getPropertySources()){
+//            if(name.equals(ps.getName())){
+//                return ps;
+//            }
+//        }
+//        return null;
+//    }
+
     @Override
     public <T> void addPropertyConverter(TypeLiteral<T> typeToConvert, PropertyConverter<T> propertyConverter) {
         propertyConverterManager.register(typeToConvert, propertyConverter);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/4a3388d7/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java
----------------------------------------------------------------------
diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java
index 2ec48b4..9360a35 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java
@@ -411,6 +411,22 @@ public class PropertyConverterManager {
         return null;
     }
 
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof PropertyConverterManager)) return false;
+
+        PropertyConverterManager that = (PropertyConverterManager) o;
+
+        return converters.equals(that.converters);
+
+    }
+
+    @Override
+    public int hashCode() {
+        return converters.hashCode();
+    }
+
     private static class DefaultPropertyConverter<T> implements PropertyConverter<T> {
 
         private final Method factoryMethod;