- public <D extends DataObject, T extends DataTreeCommitCohort<D>> ObjectRegistration<T> registerCommitCohort(
- final DataTreeIdentifier<D> subtree, final T cohort) {
- final BindingDOMDataTreeCommitCohortAdapter<D> adapter =
- new BindingDOMDataTreeCommitCohortAdapter<>(getCodec(), cohort);
- final DOMDataTreeIdentifier domPath = getCodec().toDOMDataTreeIdentifier(subtree);
- final DOMDataTreeCommitCohortRegistration<?> domReg = getDelegate().registerCommitCohort(domPath, adapter);
- return new ObjectRegistration<T>() {
-
- @Override
- public T getInstance() {
- return cohort;
- }
-
- @Override
- public void close() {
- domReg.close();
- }
- };
+ public <D extends DataObject> Registration registerCommitCohort(final DataTreeIdentifier<D> subtree,
+ final DataTreeCommitCohort<D> cohort) {
+ final var target = subtree.path().getTargetType();
+ final var adapter = new BindingDOMDataTreeCommitCohortAdapter<>(adapterContext(), cohort,
+ Augmentation.class.isAssignableFrom(target) ? target : null);
+ final var domPath = currentSerializer().toDOMDataTreeIdentifier(subtree);
+ return getDelegate().registerCommitCohort(domPath, adapter);