Skip to content

Commit b20b084

Browse files
committed
work in progress
1 parent 36b70fd commit b20b084

5 files changed

Lines changed: 278 additions & 136 deletions

File tree

src/main/java/com/google/gcloud/datastore/KeyMapValue.java

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.google.gcloud.datastore;
2+
3+
import com.google.api.services.datastore.DatastoreV1.Value;
4+
import com.google.common.collect.ImmutableMap;
5+
6+
import java.util.Map;
7+
8+
public class MapValueProperty extends Property<String, StringProperty, StringProperty.Builder> {
9+
10+
private final Key key;
11+
private final ImmutableMap<String, Property> values;
12+
13+
static final Marshaller<MapValueProperty> MARSHALLER = new Marshaller<MapValueProperty>() {
14+
@Override
15+
MapValueProperty get(Value proto, boolean indexed, Integer meaning) {
16+
// TODO: implement
17+
return new MapValueProperty(indexed);
18+
}
19+
20+
@Override
21+
public Builder<MapValueProperty> newBuilder() {
22+
// TODO Auto-generated method stub
23+
return null;
24+
}
25+
26+
@Override
27+
public MapValueProperty fromProto(Value proto) {
28+
// TODO Auto-generated method stub
29+
return null;
30+
}
31+
32+
@Override
33+
public Value toProto(MapValueProperty property) {
34+
// TODO Auto-generated method stub
35+
return null;
36+
}
37+
38+
@Override
39+
public int getProtoFieldId() {
40+
return ENTITY_VALUE_FIELD_NUMBER;;
41+
}
42+
};
43+
44+
MapValueProperty(boolean indexed) {
45+
super(Type.KEY_MAP_VALUE, indexed, 0);
46+
key = null;
47+
values = null;
48+
// TODO Auto-generated constructor stub
49+
}
50+
51+
public Key getKey() {
52+
return key;
53+
}
54+
55+
public Map<String, Property> getValues() {
56+
return values;
57+
}
58+
59+
@Override
60+
protected void addValueToProto(Builder builder) {
61+
// TODO Auto-generated method stub
62+
}
63+
}
Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,56 @@
11
package com.google.gcloud.datastore;
22

3+
import static com.google.common.base.Preconditions.checkArgument;
4+
35
import com.google.api.services.datastore.DatastoreV1.Value;
46

5-
public final class NullProperty extends Property<NullProperty> {
7+
public final class NullProperty extends Property<Void, NullProperty, NullProperty.Builder> {
8+
9+
static final Marshaller<Void, NullProperty, Builder> MARSHALLER =
10+
new BaseMarshaller<Void, NullProperty, Builder>() {
11+
12+
@Override
13+
public Builder newBuilder() {
14+
return new Builder();
15+
}
16+
17+
@Override
18+
public int getProtoFieldId() {
19+
return 0;
20+
}
21+
22+
@Override
23+
protected void set(Value from, Builder to) {
24+
// nothing to set
25+
}
626

7-
static final Provider<NullProperty> PROVIDER = new Provider<NullProperty>() {
827
@Override
9-
NullProperty get(Value proto, boolean indexed, Integer meaning) {
10-
return new NullProperty(indexed, meaning);
28+
protected void set(NullProperty from, Value.Builder to) {
29+
// nothing to set
1130
}
1231
};
1332

14-
public static class Builder extends Property.Builder<NullProperty> {
33+
public static final class Builder extends Property.Builder<Void, NullProperty, Builder> {
1534

1635
public Builder() {
1736
super(Type.NULL);
1837
}
1938

20-
public Builder(NullProperty property) {
21-
super(property);
22-
}
23-
2439
@Override
2540
public NullProperty build() {
2641
return new NullProperty(this);
2742
}
43+
44+
@Override
45+
public Void validate(Void value) {
46+
checkArgument(value == null, "Only null values are allowed");
47+
return null;
48+
}
49+
50+
@Override
51+
protected Builder self() {
52+
return this;
53+
}
2854
}
2955

3056
public NullProperty() {
@@ -34,14 +60,4 @@ public NullProperty() {
3460
NullProperty(Builder builder) {
3561
super(builder);
3662
}
37-
38-
@Override
39-
protected void addValueToProto(Value.Builder builder) {
40-
// set nothing
41-
}
42-
43-
@Override
44-
public Property.Builder<NullProperty> toBuilder() {
45-
return new Builder(this);
46-
}
4763
}

0 commit comments

Comments
 (0)