Author: davidb
Date: Fri Feb 17 16:19:52 2017
New Revision: 1783421

URL: http://svn.apache.org/viewvc?rev=1783421&view=rev
Log:
Updated Converter API from OSGi

Originating OSGi commit: fdef401c0ba28b988775b1c92e07b8467c773075

Modified:
    
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java

Modified: 
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java?rev=1783421&r1=1783420&r2=1783421&view=diff
==============================================================================
--- 
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java
 (original)
+++ 
felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertFunction.java
 Fri Feb 17 16:19:52 2017
@@ -49,4 +49,27 @@ public interface ConvertFunction<F, T> {
         */
        T convert(F obj, Type targetType, Object root, Object[] keyPath)
                        throws Exception;
+
+       /**
+        * Override the default error handling mechanism. Whenever a converter
+        * throws a Conversion Exception, this can be overridden with either 
another
+        * runtime exception or an actual value.
+        *
+        * @param obj The object to be converted. This object will never be
+        *            {@code null} as the convert function will not be invoked 
for
+        *            null values.
+        * @param targetType The target type.
+        * @param root The root object, if this obj was embedded in a root 
object.
+        *            Otherwise {@code null}.
+        * @param keyPath If the object is embedded in a root object, the path 
of
+        *            keys that reach this object. Otherwise {@code null}.
+        * @return A value to use in case of an error. This method can return
+        *         {@code null} to indicate that it cannot handle the error.
+        * @throws RuntimeException Another Runtime Exception may also be 
thrown by
+        *             this handler.
+        */
+       default T handleError(F obj, Type targetType, Object root,
+                       Object[] keyPath) {
+               return null;
+       }
 }


Reply via email to