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 2015/10/29 13:09:57 UTC

[04/10] incubator-tamaya git commit: TAMAYA-128: Added ConversionContext for supporting more complex conversion cases, adapted evaluation of conversion, passing along the finally found key value, if any.

TAMAYA-128: Added ConversionContext for supporting more complex conversion cases, adapted evaluation of conversion, passing along the finally found key value, if any.


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

Branch: refs/heads/master
Commit: ff3f3140c60bac6a4d6c14ea190452b43059eb83
Parents: fad1e9d
Author: Anatole Tresch <an...@apache.org>
Authored: Thu Oct 29 12:39:53 2015 +0100
Committer: Anatole Tresch <an...@apache.org>
Committed: Thu Oct 29 12:39:53 2015 +0100

----------------------------------------------------------------------
 .../tamaya/integration/cdi/internal/EnumConverter.java      | 4 +++-
 .../integration/cdi/internal/PropertyConverterManager.java  | 9 +++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ff3f3140/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/EnumConverter.java
----------------------------------------------------------------------
diff --git a/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/EnumConverter.java b/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/EnumConverter.java
index 5b96044..15a5698 100644
--- a/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/EnumConverter.java
+++ b/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/EnumConverter.java
@@ -19,6 +19,7 @@
 package org.apache.tamaya.integration.cdi.internal;
 
 import org.apache.tamaya.ConfigException;
+import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
 import javax.enterprise.inject.Vetoed;
@@ -53,7 +54,8 @@ public class EnumConverter<T> implements PropertyConverter<T> {
     }
 
     @Override
-    public T convert(String value) {
+    public T convert(String value, ConversionContext context) {
+        context.addSupportedFormats(getClass(), "<enumValue>");
         try {
             return (T) factory.invoke(null, value);
         } catch (InvocationTargetException | IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/ff3f3140/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/PropertyConverterManager.java
----------------------------------------------------------------------
diff --git a/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/PropertyConverterManager.java b/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/PropertyConverterManager.java
index 8a78548..e10b2da 100644
--- a/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/PropertyConverterManager.java
+++ b/modules/integration/cdi-se/src/main/java/org/apache/tamaya/integration/cdi/internal/PropertyConverterManager.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.integration.cdi.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 import org.apache.tamaya.spi.ServiceContextManager;
 
@@ -349,7 +350,10 @@ public class PropertyConverterManager {
         if (factoryMethod != null) {
             converter = new PropertyConverter<T>() {
                 @Override
-                public T convert(String value) {
+                public T convert(String value, ConversionContext context) {
+                    context.addSupportedFormats(PropertyConverter.class, "static T of(String)", "static T valueOf(String)",
+                            "static T getInstance(String)", "static T from(String)",
+                            "static T fromString(String)", "static T parse(String)");
                     try {
                         if (!Modifier.isStatic(factoryMethod.getModifiers())) {
                             throw new ConfigException(factoryMethod.toGenericString() +
@@ -376,7 +380,8 @@ public class PropertyConverterManager {
                 final Constructor<T> constr = targetType.getRawType().getDeclaredConstructor(String.class);
                 converter = new PropertyConverter<T>() {
                     @Override
-                    public T convert(String value) {
+                    public T convert(String value, ConversionContext context) {
+                        context.addSupportedFormats(PropertyConverter.class, "new T(String)");
                         try {
                             AccessController.doPrivileged(new PrivilegedAction<Object>() {
                                 @Override