merge method

  1. @override
void merge(
  1. MergeContext mergeContext,
  2. covariant KdbxGroup other
)
override

Implementation

@override
void merge(MergeContext mergeContext, KdbxGroup other) {
  assertSameUuid(other, 'merge');

  if (other.wasModifiedAfter(this)) {
    _logger.finest('merge: other group was modified $uuid');
    _overwriteFrom(mergeContext, other);
  }
  _mergeSubObjects<KdbxGroup>(
    mergeContext,
    _groups,
    other._groups,
    importToHere: (other) =>
        KdbxGroup.create(ctx: ctx, parent: this, name: other.name.get())
          ..forceSetUuid(other.uuid)
          ..let((x) => addGroup(x))
          .._overwriteFrom(mergeContext, other),
  );
  _mergeSubObjects<KdbxEntry>(
    mergeContext,
    _entries,
    other._entries,
    importToHere: (other) => other.cloneInto(this),
  );
  mergeContext.markAsMerged(this);
}