import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingInstanceIdentifierCodec;
-import org.opendaylight.yangtools.concepts.IllegalArgumentCodec;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
final class InstanceIdentifierCodec implements BindingInstanceIdentifierCodec,
//FIXME: this is not really an IllegalArgumentCodec, as it can legally return null from deserialize()
- IllegalArgumentCodec<YangInstanceIdentifier, InstanceIdentifier<?>> {
+ ValueCodec<YangInstanceIdentifier, InstanceIdentifier<?>> {
private final BindingCodecContext context;
InstanceIdentifierCodec(final BindingCodecContext context) {
if (codec == null) {
return null;
}
- if (codec instanceof ListNodeCodecContext && Iterables.getLast(builder) instanceof InstanceIdentifier.Item) {
+ if (codec instanceof ListCodecContext && Iterables.getLast(builder) instanceof InstanceIdentifier.Item) {
// We ended up in list, but without key, which means it represent list as a whole,
// which is not binding representable.
return null;
}
- @SuppressWarnings("unchecked")
- final InstanceIdentifier<T> ret = (InstanceIdentifier<T>) InstanceIdentifier.create(builder);
- return ret;
+
+ return InstanceIdentifier.unsafeOf(builder);
}
@Override
public @NonNull YangInstanceIdentifier fromBinding(@NonNull final InstanceIdentifier<?> bindingPath) {
final List<PathArgument> domArgs = new ArrayList<>();
context.getCodecContextNode(bindingPath, domArgs);
- return YangInstanceIdentifier.create(domArgs);
+ return YangInstanceIdentifier.of(domArgs);
}
@Override