- for (final Entry<Class<?>, Method> childDataObj : clsToMethod.entrySet()) {
- final Method method = childDataObj.getValue();
- verify(!method.isDefault(), "Unexpected default method %s in %s", method, bindingClass);
- final DataContainerCodecPrototype<?> childProto = loadChildPrototype(childDataObj.getKey());
- byMethodBuilder.put(method, childProto);
- byStreamClassBuilder.put(childProto.getBindingClass(), childProto);
- byYangBuilder.put(childProto.getYangArg(), childProto);
- if (childProto.isChoice()) {
- final ChoiceNodeCodecContext<?> choice = (ChoiceNodeCodecContext<?>) childProto.get();
- for (final Class<?> cazeChild : choice.getCaseChildrenClasses()) {
- byBindingArgClassBuilder.put(cazeChild, childProto);
- }
- }
- }
- this.byMethod = ImmutableSortedMap.copyOfSorted(byMethodBuilder);
- this.byYang = ImmutableMap.copyOf(byYangBuilder);
- this.byStreamClass = ImmutableMap.copyOf(byStreamClassBuilder);
- byBindingArgClassBuilder.putAll(byStreamClass);
- this.byBindingArgClass = ImmutableMap.copyOf(byBindingArgClassBuilder);
-
- final Map<Class<?>, Method> clsToNonnull = BindingReflections.getChildrenClassToNonnullMethod(bindingClass);
- final Map<Method, NodeContextSupplier> nonnullMethodsBuilder = new HashMap<>();
- for (final Entry<Class<?>, Method> entry : clsToNonnull.entrySet()) {
- final Method method = entry.getValue();
- if (!method.isDefault()) {
- LOG.warn("Ignoring non-default method {} in {}", method, bindingClass);
- continue;
- }
- final DataContainerCodecPrototype<?> supplier = byStreamClass.get(entry.getKey());
- if (supplier != null) {
- nonnullMethodsBuilder.put(method, supplier);
- } else {
- LOG.warn("Failed to look up data handler for method {}", method);
- }
- }