diff --git a/pkg/object/raw.go b/pkg/object/raw.go index bb7401b..f29e001 100644 --- a/pkg/object/raw.go +++ b/pkg/object/raw.go @@ -143,3 +143,8 @@ func (o *RawObject) CutPayload() *RawObject { return nil } + +// ResetRelations removes all fields of links with other objects. +func (o *RawObject) ResetRelations() { + o.resetRelations() +} diff --git a/pkg/object/raw_test.go b/pkg/object/raw_test.go index a3119be..3931adb 100644 --- a/pkg/object/raw_test.go +++ b/pkg/object/raw_test.go @@ -265,3 +265,13 @@ func TestRawObject_SetParentID(t *testing.T) { require.Equal(t, id, obj.GetParentID()) } + +func TestRawObject_ResetRelations(t *testing.T) { + obj := NewRaw() + + obj.SetPreviousID(randID(t)) + + obj.ResetRelations() + + require.Nil(t, obj.GetPreviousID()) +} diff --git a/pkg/object/rw.go b/pkg/object/rw.go index b1b13c7..0e8e621 100644 --- a/pkg/object/rw.go +++ b/pkg/object/rw.go @@ -296,6 +296,12 @@ func (o *rwObject) setParent(v *Object) { }) } +func (o *rwObject) resetRelations() { + o.setHeaderField(func(h *object.Header) { + h.SetSplit(nil) + }) +} + // GetSessionToken returns token of the session // within which object was created. func (o *rwObject) GetSessionToken() *token.SessionToken {