From dbb5102c02992b5b99fa9c72f3df3ae52ead771b Mon Sep 17 00:00:00 2001 From: Leonard Lyubich Date: Tue, 22 Sep 2020 14:02:36 +0300 Subject: [PATCH] [#155] sdk/object: Add object type getter/setter Signed-off-by: Leonard Lyubich --- pkg/object/raw.go | 5 +++++ pkg/object/raw_test.go | 10 ++++++++++ pkg/object/rw.go | 15 +++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/pkg/object/raw.go b/pkg/object/raw.go index b4d4063..6930b6a 100644 --- a/pkg/object/raw.go +++ b/pkg/object/raw.go @@ -115,3 +115,8 @@ func (o *RawObject) SetParent(v *Object) { func (o *RawObject) SetSessionToken(v *token.SessionToken) { o.setSessionToken(v) } + +// SetType sets type of the object. +func (o *RawObject) SetType(v Type) { + o.setType(v) +} diff --git a/pkg/object/raw_test.go b/pkg/object/raw_test.go index fe0f236..531789a 100644 --- a/pkg/object/raw_test.go +++ b/pkg/object/raw_test.go @@ -214,3 +214,13 @@ func TestRawObject_SetSessionToken(t *testing.T) { require.Equal(t, tok, obj.GetSessionToken()) } + +func TestRawObject_SetType(t *testing.T) { + obj := NewRaw() + + typ := TypeStorageGroup + + obj.SetType(typ) + + require.Equal(t, typ, obj.GetType()) +} diff --git a/pkg/object/rw.go b/pkg/object/rw.go index 5332d14..e2575d7 100644 --- a/pkg/object/rw.go +++ b/pkg/object/rw.go @@ -288,3 +288,18 @@ func (o *rwObject) setSessionToken(v *token.SessionToken) { h.SetSessionToken(v.ToV2()) }) } + +// GetType returns type of the object. +func (o *rwObject) GetType() Type { + return TypeFromV2( + (*object.Object)(o). + GetHeader(). + GetObjectType(), + ) +} + +func (o *rwObject) setType(t Type) { + o.setHeaderField(func(h *object.Header) { + h.SetObjectType(t.ToV2()) + }) +}