Skip to content

Commit 6681242

Browse files
committed
fixes values
1 parent 08f109e commit 6681242

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

couchbase-driver/src/main/java/org/jnosql/diana/couchbase/key/CouchbaseMap.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020

2121
import javax.json.bind.Jsonb;
2222
import javax.json.bind.JsonbBuilder;
23+
import java.util.ArrayList;
2324
import java.util.Collection;
2425
import java.util.HashMap;
2526
import java.util.Map;
2627
import java.util.Objects;
2728
import java.util.Set;
2829

29-
import static java.util.stream.Collectors.toList;
3030
import static java.util.stream.Collectors.toSet;
3131

3232

@@ -54,7 +54,7 @@ class CouchbaseMap<K, V> implements Map<K, V> {
5454
this.bucketName = bucketName + ":map";
5555
this.valueClass = valueClass;
5656
this.keyClass = keyClass;
57-
map = new com.couchbase.client.java.datastructures.collections.CouchbaseMap<JsonObject>(this.bucketName, bucket);
57+
map = new com.couchbase.client.java.datastructures.collections.CouchbaseMap<>(this.bucketName, bucket);
5858
}
5959

6060
@Override
@@ -120,7 +120,7 @@ public boolean containsKey(Object key) {
120120
@Override
121121
public boolean containsValue(Object value) {
122122
Objects.requireNonNull(value, "key is required");
123-
return map.containsValue(JSONB.toJson(value));
123+
return values().stream().anyMatch(value::equals);
124124
}
125125

126126
@Override
@@ -132,9 +132,17 @@ public Set<K> keySet() {
132132

133133
@Override
134134
public Collection<V> values() {
135-
return map.values().stream()
136-
.map(s -> JSONB.fromJson(s.toString(), valueClass))
137-
.collect(toList());
135+
136+
Collection<V> values = new ArrayList<>();
137+
138+
for (Object object : map.values()) {
139+
if(object instanceof Map) {
140+
values.add(JSONB.fromJson(JsonObject.from(Map.class.cast(object)).toString(), valueClass));
141+
} else if(object instanceof JsonObject) {
142+
values.add(JSONB.fromJson(JsonObject.class.cast(object).toString(), valueClass));
143+
}
144+
}
145+
return values;
138146
}
139147

140148
@Override

0 commit comments

Comments
 (0)