Improve keyed list mapping
Description
relates to
Activity
Show:
Done
Details
Details
Assignee
Robert Varga
Robert VargaReporter
Robert Varga
Robert VargaLabels
Fix versions
Priority
Created June 29, 2024 at 12:54 AM
Updated July 5, 2024 at 7:06 PM
Resolved June 29, 2024 at 1:31 AM
Current Binding is mapping
list foo { key bar; leaf bar { type String; } }
to a combination of DataObject and KeyAware without an explicit contract. This leaves a lot to be desired in terms of DataObjectReference generics and DataObject overloads in general.
Introduce a new DataObject kind:
interface EntryObject<T extends EntryObject<T, K>, K extends Key<T> extends DataObject, KeyAware<K, T> { // just a specialization }
This makes the mapping more explicit and allows us to improve generic arguments. It also lays down the foundation for further evolution, as EntryObject can grow new type members to improve interactions via:
interface Foo extends EntryObject<Foo, FooKey> { // ... }