import java.util.Collection;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
+import java.util.Set;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingStreamEventWriter;
-import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.yangtools.yang.binding.Augmentable;
import org.opendaylight.yangtools.yang.binding.Augmentation;
import org.opendaylight.yangtools.yang.binding.DataContainer;
protected static final void streamAugmentations(final DataObjectSerializerRegistry registry,
final BindingStreamEventWriter writer, final Augmentable<?> obj) throws IOException {
- final Map<Class<? extends Augmentation<?>>, Augmentation<?>> augmentations =
- BindingReflections.getAugmentations(obj);
- for (final Entry<Class<? extends Augmentation<?>>, Augmentation<?>> aug : augmentations.entrySet()) {
+ for (final var aug : obj.augmentations().entrySet()) {
emitAugmentation(aug.getKey(), aug.getValue(), writer, registry);
}
}
}
protected static final void streamLeafList(final BindingStreamEventWriter writer, final String localName,
- final List<?> value) throws IOException {
+ final Set<?> value) throws IOException {
if (value != null) {
writer.startLeafSet(localName, value.size());
commonStreamLeafset(writer, value);
writer.endNode();
}
- private static void commonStreamLeafset(final BindingStreamEventWriter writer, final List<?> value)
+ private static void commonStreamLeafset(final BindingStreamEventWriter writer, final Collection<?> value)
throws IOException {
for (Object entry : value) {
writer.leafSetEntryNode(entry);
@SuppressWarnings("unchecked")
private static <T extends DataObject> boolean tryCache(final BindingStreamEventWriter writer, final T value) {
- return writer instanceof BindingSerializer ? ((BindingSerializer<?, T>) writer).serialize(value) == null : true;
+ // Force serialization if writer is not a BindingSerializer, otherwise defer to it for a decision
+ return !(writer instanceof BindingSerializer) || ((BindingSerializer<?, T>) writer).serialize(value) == null;
}
- private static int nullSize(final List<?> list) {
+ private static int nullSize(final Collection<?> list) {
return list == null ? 0 : list.size();
}