Index: service/datastore/multiarg.go |
diff --git a/service/datastore/multiarg.go b/service/datastore/multiarg.go |
index 3efa1493df86692ed1947c2985ba17e753f54b46..8dca99c46aec59624dd5f704a22654b0a5e3722b 100644 |
--- a/service/datastore/multiarg.go |
+++ b/service/datastore/multiarg.go |
@@ -214,11 +214,11 @@ func multiArgTypeInterface() multiArgType { |
return newKeyObjErr(nk, slot.Elem().Interface()) |
}, |
getPM: func(slot reflect.Value) (PropertyMap, error) { |
- pls, _ := mkPLSName(slot.Elem().Interface()) |
+ pls := mkPLS(slot.Elem().Interface()) |
return pls.Save(true) |
}, |
setPM: func(slot reflect.Value, pm PropertyMap) error { |
- pls, _ := mkPLSName(slot.Elem().Interface()) |
+ pls := mkPLS(slot.Elem().Interface()) |
return pls.Load(pm) |
}, |
setKey: func(slot reflect.Value, k Key) { |
@@ -228,15 +228,15 @@ func multiArgTypeInterface() multiArgType { |
} |
func newKeyObjErr(nk newKeyFunc, src interface{}) (Key, error) { |
- pls, name := mkPLSName(src) |
+ pls := mkPLS(src) |
if key, _ := pls.GetMetaDefault("key", nil).(Key); key != nil { |
return key, nil |
} |
// get kind |
- kind := pls.GetMetaDefault("kind", name).(string) |
+ kind := pls.GetMetaDefault("kind", "").(string) |
if kind == "" { |
- return nil, fmt.Errorf("unable to extract $kind from %v", src) |
+ return nil, fmt.Errorf("unable to extract $kind from %T", src) |
} |
// get id - allow both to be default for default keys |
@@ -250,7 +250,7 @@ func newKeyObjErr(nk newKeyFunc, src interface{}) (Key, error) { |
} |
func setKey(src interface{}, key Key) { |
- pls, _ := mkPLSName(src) |
+ pls := mkPLS(src) |
if pls.SetMeta("key", key) == ErrMetaFieldUnset { |
if key.StringID() != "" { |
pls.SetMeta("id", key.StringID()) |
@@ -262,14 +262,9 @@ func setKey(src interface{}, key Key) { |
} |
} |
-func mkPLSName(o interface{}) (PropertyLoadSaver, string) { |
- if pls, ok := o.(*structPLS); ok { |
- return pls, pls.o.Type().Name() |
- } |
+func mkPLS(o interface{}) PropertyLoadSaver { |
if pls, ok := o.(PropertyLoadSaver); ok { |
- return pls, "" |
+ return pls |
} |
- pls := GetPLS(o) |
- name := pls.(*structPLS).o.Type().Name() |
- return pls, name |
+ return GetPLS(o) |
} |