[#164] sdk/object: Add HasParent method

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-09-30 20:21:32 +03:00 committed by Leonard Lyubich
parent 2a2e4d8577
commit 1305bc750e
3 changed files with 29 additions and 0 deletions

View file

@ -148,3 +148,8 @@ func (o *RawObject) CutPayload() *RawObject {
func (o *RawObject) ResetRelations() { func (o *RawObject) ResetRelations() {
o.resetRelations() o.resetRelations()
} }
// InitRelations initializes relation field.
func (o *RawObject) InitRelations() {
o.initRelations()
}

View file

@ -275,3 +275,15 @@ func TestRawObject_ResetRelations(t *testing.T) {
require.Nil(t, obj.GetPreviousID()) require.Nil(t, obj.GetPreviousID())
} }
func TestRwObject_HasParent(t *testing.T) {
obj := NewRaw()
obj.InitRelations()
require.True(t, obj.HasParent())
obj.ResetRelations()
require.False(t, obj.HasParent())
}

View file

@ -296,6 +296,12 @@ func (o *rwObject) setParent(v *Object) {
}) })
} }
func (o *rwObject) initRelations() {
o.setHeaderField(func(h *object.Header) {
h.SetSplit(new(object.SplitHeader))
})
}
func (o *rwObject) resetRelations() { func (o *rwObject) resetRelations() {
o.setHeaderField(func(h *object.Header) { o.setHeaderField(func(h *object.Header) {
h.SetSplit(nil) h.SetSplit(nil)
@ -340,3 +346,9 @@ func (o *rwObject) cutPayload() *rwObject {
return (*rwObject)(ov2) return (*rwObject)(ov2)
} }
func (o *rwObject) HasParent() bool {
return (*object.Object)(o).
GetHeader().
GetSplit() != nil
}