Improve keyed list mapping

Description

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> { // ... }

Activity

Show:
Done

Details

Assignee

Reporter

Labels

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