- final CommonDataObjectCodecPrototype<?> cazeProto;
- if (arg instanceof NodeIdentifierWithPredicates) {
- cazeProto = byYangCaseChild.get(new NodeIdentifier(arg.getNodeType()));
- } else {
- cazeProto = byYangCaseChild.get(arg);
- }
-
- return childNonNull(cazeProto, arg, "Argument %s is not valid child of %s", arg, getSchema()).get()
- .yangPathArgumentChild(arg);
- }
-
- @Override
- @SuppressWarnings("unchecked")
- @SuppressFBWarnings(value = "NP_NONNULL_RETURN_VIOLATION", justification = "See FIXME below")
- public D deserialize(final NormalizedNode data) {
- final var casted = checkDataArgument(ChoiceNode.class, data);
- final var first = Iterables.getFirst(casted.body(), null);
-
- if (first == null) {
- // FIXME: this needs to be sorted out
- return null;
- }
- final var caze = byYangCaseChild.get(first.name());
- return ((CaseCodecContext<D>) caze.get()).deserialize(data);