Index: impl/prod/raw_datastore_type_converter.go |
diff --git a/impl/prod/raw_datastore_type_converter.go b/impl/prod/raw_datastore_type_converter.go |
index 349f5fc1ee5e43f700cfe04cd0dfe141c1260330..778773a506a4d6b69c77500d3d517d6b366cabfc 100644 |
--- a/impl/prod/raw_datastore_type_converter.go |
+++ b/impl/prod/raw_datastore_type_converter.go |
@@ -12,13 +12,13 @@ import ( |
) |
type typeFilter struct { |
- pls rds.PropertyLoadSaver |
+ pm rds.PropertyMap |
} |
var _ datastore.PropertyLoadSaver = &typeFilter{} |
func (tf *typeFilter) Load(props []datastore.Property) error { |
- pmap := make(rds.PropertyMap, len(props)) |
+ tf.pm = make(rds.PropertyMap, len(props)) |
for _, p := range props { |
val := p.Value |
switch x := val.(type) { |
@@ -39,19 +39,17 @@ func (tf *typeFilter) Load(props []datastore.Property) error { |
if err := prop.SetValue(val, is); err != nil { |
return err |
} |
- pmap[p.Name] = append(pmap[p.Name], prop) |
+ tf.pm[p.Name] = append(tf.pm[p.Name], prop) |
} |
- return tf.pls.Load(pmap) |
+ return nil |
} |
func (tf *typeFilter) Save() ([]datastore.Property, error) { |
- newProps, err := tf.pls.Save(false) |
- if err != nil { |
- return nil, err |
- } |
- |
props := []datastore.Property{} |
- for name, propList := range newProps { |
+ for name, propList := range tf.pm { |
+ if len(name) != 0 && name[0] == '$' { |
+ continue |
+ } |
multiple := len(propList) > 1 |
for _, prop := range propList { |
toAdd := datastore.Property{ |
@@ -74,6 +72,5 @@ func (tf *typeFilter) Save() ([]datastore.Property, error) { |
props = append(props, toAdd) |
} |
} |
- |
return props, nil |
} |