OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package prod | 5 package prod |
6 | 6 |
7 import ( | 7 import ( |
8 bs "github.com/luci/gae/service/blobstore" | 8 bs "github.com/luci/gae/service/blobstore" |
9 » rds "github.com/luci/gae/service/rawdatastore" | 9 » ds "github.com/luci/gae/service/datastore" |
10 "google.golang.org/appengine" | 10 "google.golang.org/appengine" |
11 "google.golang.org/appengine/datastore" | 11 "google.golang.org/appengine/datastore" |
12 ) | 12 ) |
13 | 13 |
14 type typeFilter struct { | 14 type typeFilter struct { |
15 » pm rds.PropertyMap | 15 » pm ds.PropertyMap |
16 } | 16 } |
17 | 17 |
18 var _ datastore.PropertyLoadSaver = &typeFilter{} | 18 var _ datastore.PropertyLoadSaver = &typeFilter{} |
19 | 19 |
20 func (tf *typeFilter) Load(props []datastore.Property) error { | 20 func (tf *typeFilter) Load(props []datastore.Property) error { |
21 » tf.pm = make(rds.PropertyMap, len(props)) | 21 » tf.pm = make(ds.PropertyMap, len(props)) |
22 for _, p := range props { | 22 for _, p := range props { |
23 val := p.Value | 23 val := p.Value |
24 switch x := val.(type) { | 24 switch x := val.(type) { |
25 case datastore.ByteString: | 25 case datastore.ByteString: |
26 » » » val = rds.ByteString(x) | 26 » » » val = ds.ByteString(x) |
27 case *datastore.Key: | 27 case *datastore.Key: |
28 val = dsR2F(x) | 28 val = dsR2F(x) |
29 case appengine.BlobKey: | 29 case appengine.BlobKey: |
30 val = bs.Key(x) | 30 val = bs.Key(x) |
31 case appengine.GeoPoint: | 31 case appengine.GeoPoint: |
32 » » » val = rds.GeoPoint(x) | 32 » » » val = ds.GeoPoint(x) |
33 } | 33 } |
34 » » prop := rds.Property{} | 34 » » prop := ds.Property{} |
35 » » is := rds.ShouldIndex | 35 » » is := ds.ShouldIndex |
36 if p.NoIndex { | 36 if p.NoIndex { |
37 » » » is = rds.NoIndex | 37 » » » is = ds.NoIndex |
38 } | 38 } |
39 if err := prop.SetValue(val, is); err != nil { | 39 if err := prop.SetValue(val, is); err != nil { |
40 return err | 40 return err |
41 } | 41 } |
42 tf.pm[p.Name] = append(tf.pm[p.Name], prop) | 42 tf.pm[p.Name] = append(tf.pm[p.Name], prop) |
43 } | 43 } |
44 return nil | 44 return nil |
45 } | 45 } |
46 | 46 |
47 func (tf *typeFilter) Save() ([]datastore.Property, error) { | 47 func (tf *typeFilter) Save() ([]datastore.Property, error) { |
48 props := []datastore.Property{} | 48 props := []datastore.Property{} |
49 for name, propList := range tf.pm { | 49 for name, propList := range tf.pm { |
50 if len(name) != 0 && name[0] == '$' { | 50 if len(name) != 0 && name[0] == '$' { |
51 continue | 51 continue |
52 } | 52 } |
53 multiple := len(propList) > 1 | 53 multiple := len(propList) > 1 |
54 for _, prop := range propList { | 54 for _, prop := range propList { |
55 toAdd := datastore.Property{ | 55 toAdd := datastore.Property{ |
56 Name: name, | 56 Name: name, |
57 Multiple: multiple, | 57 Multiple: multiple, |
58 » » » » NoIndex: prop.IndexSetting() == rds.NoIndex, | 58 » » » » NoIndex: prop.IndexSetting() == ds.NoIndex, |
59 } | 59 } |
60 switch x := prop.Value().(type) { | 60 switch x := prop.Value().(type) { |
61 » » » case rds.ByteString: | 61 » » » case ds.ByteString: |
62 toAdd.Value = datastore.ByteString(x) | 62 toAdd.Value = datastore.ByteString(x) |
63 » » » case rds.Key: | 63 » » » case ds.Key: |
64 toAdd.Value = dsF2R(x) | 64 toAdd.Value = dsF2R(x) |
65 case bs.Key: | 65 case bs.Key: |
66 toAdd.Value = appengine.BlobKey(x) | 66 toAdd.Value = appengine.BlobKey(x) |
67 » » » case rds.GeoPoint: | 67 » » » case ds.GeoPoint: |
68 toAdd.Value = appengine.GeoPoint(x) | 68 toAdd.Value = appengine.GeoPoint(x) |
69 default: | 69 default: |
70 toAdd.Value = x | 70 toAdd.Value = x |
71 } | 71 } |
72 props = append(props, toAdd) | 72 props = append(props, toAdd) |
73 } | 73 } |
74 } | 74 } |
75 return props, nil | 75 return props, nil |
76 } | 76 } |
OLD | NEW |