final class InstanceIdentifierXmlCodec implements XmlCodec<YangInstanceIdentifier> {
private final @NonNull XmlCodecFactory codecFactory;
private final DataSchemaContextTree dataContextTree;
+ private final PreferredPrefixes pref;
- InstanceIdentifierXmlCodec(final XmlCodecFactory codecFactory) {
+ InstanceIdentifierXmlCodec(final XmlCodecFactory codecFactory, final PreferredPrefixes pref) {
this.codecFactory = requireNonNull(codecFactory);
+ this.pref = requireNonNull(pref);
dataContextTree = DataSchemaContextTree.from(codecFactory.getEffectiveModelContext());
}
@Override
public void writeValue(final XMLStreamWriter ctx, final YangInstanceIdentifier value) throws XMLStreamException {
- final var serializer = new InstanceIdentifierSerializer(dataContextTree, ctx.getNamespaceContext());
+ final var serializer = new InstanceIdentifierSerializer(dataContextTree, pref, ctx.getNamespaceContext());
final String str;
try {
} catch (IllegalArgumentException e) {
throw new XMLStreamException("Failed to encode instance-identifier", e);
}
- for (var entry : serializer.getPrefixes()) {
+ for (var entry : serializer.emittedPrefixes()) {
ctx.writeNamespace(entry.getValue(), entry.getKey().toString());
}
ctx.writeCharacters(str);