Use lambda for Codec.loader()s
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / yangtools / binding / data / codec / impl / UnionTypeCodec.java
index d759cf429e3fe8cc55bad713d745929d17fcf498..001eabfa73d2f304fe5464ea665e9ea93cf021e3 100644 (file)
@@ -46,19 +46,15 @@ final class UnionTypeCodec extends ReflectionBasedCodec {
 
     static Callable<UnionTypeCodec> loader(final Class<?> unionCls, final UnionTypeDefinition unionType,
                                            final BindingCodecContext bindingCodecContext) {
-        return new Callable<UnionTypeCodec>() {
-            @Override
-            public UnionTypeCodec call() throws NoSuchMethodException, SecurityException {
-                Set<UnionValueOptionContext> values = new LinkedHashSet<>();
-                for (TypeDefinition<?> subtype : unionType.getTypes()) {
-                    String methodName = "get" + BindingMapping.getClassName(subtype.getQName());
-                    Method valueGetter = unionCls.getMethod(methodName);
-                    Class<?> valueType = valueGetter.getReturnType();
-                    Codec<Object, Object> valueCodec = bindingCodecContext.getCodec(valueType, subtype);
-                    values.add(new UnionValueOptionContext(unionCls, valueType, valueGetter, valueCodec));
-                }
-                return new UnionTypeCodec(unionCls, values);
+        return () -> {
+            final Set<UnionValueOptionContext> values = new LinkedHashSet<>();
+            for (TypeDefinition<?> subtype : unionType.getTypes()) {
+                Method valueGetter = unionCls.getMethod("get" + BindingMapping.getClassName(subtype.getQName()));
+                Class<?> valueType = valueGetter.getReturnType();
+                Codec<Object, Object> valueCodec = bindingCodecContext.getCodec(valueType, subtype);
+                values.add(new UnionValueOptionContext(unionCls, valueType, valueGetter, valueCodec));
             }
+            return new UnionTypeCodec(unionCls, values);
         };
     }