1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.appender.db.nosql.couch;
18
19 import java.util.ArrayList;
20 import java.util.Arrays;
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
25
26
27
28
29 public final class CouchDBObject implements NoSQLObject<Map<String, Object>> {
30 private final Map<String, Object> map;
31
32 public CouchDBObject() {
33 this.map = new HashMap<String, Object>();
34 }
35
36 @Override
37 public void set(final String field, final Object value) {
38 this.map.put(field, value);
39 }
40
41 @Override
42 public void set(final String field, final NoSQLObject<Map<String, Object>> value) {
43 this.map.put(field, value.unwrap());
44 }
45
46 @Override
47 public void set(final String field, final Object[] values) {
48 this.map.put(field, Arrays.asList(values));
49 }
50
51 @Override
52 public void set(final String field, final NoSQLObject<Map<String, Object>>[] values) {
53 final ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
54 for (final NoSQLObject<Map<String, Object>> value : values) {
55 list.add(value.unwrap());
56 }
57 this.map.put(field, list);
58 }
59
60 @Override
61 public Map<String, Object> unwrap() {
62 return this.map;
63 }
64 }