Skip to content

Package: Payload$Builder

Payload$Builder

nameinstructionbranchcomplexitylinemethod
Payload.Builder()
M: 11 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
build()
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
put(String, Object)
M: 11 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
timestamp()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
timestamp(Instant)
M: 8 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
values()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
values(Map)
M: 12 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2017, 2020 Red Hat Inc and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License v1.0
6: * which accompanies this distribution, and is available at
7: * http://www.eclipse.org/legal/epl-v10.html
8: *
9: * Contributors:
10: * Red Hat Inc - initial API and implementation
11: *******************************************************************************/
12: package org.eclipse.kapua.client.gateway;
13:
14: import java.time.Instant;
15: import java.util.Collections;
16: import java.util.HashMap;
17: import java.util.Map;
18: import java.util.Objects;
19:
20: /**
21: * Payload data
22: */
23: public class Payload {
24:
25: public static class Builder {
26:
27: private Instant timestamp;
28:
29: private final Map<String, Object> values = new HashMap<>();
30:
31: public Builder() {
32: timestamp = Instant.now();
33: }
34:
35: public Instant timestamp() {
36: return timestamp;
37: }
38:
39: public Builder timestamp(final Instant timestamp) {
40: Objects.requireNonNull(timestamp);
41:
42: this.timestamp = timestamp;
43: return this;
44: }
45:
46: public Map<String, ?> values() {
47: return values;
48: }
49:
50: public Builder values(final Map<String, ?> values) {
51: Objects.requireNonNull(values);
52:
53: this.values.clear();
54: this.values.putAll(values);
55:
56: return this;
57: }
58:
59: public Builder put(final String key, final Object value) {
60: Objects.requireNonNull(key);
61:
62: values.put(key, value);
63: return this;
64: }
65:
66: public Payload build() {
67: return new Payload(timestamp, values, true);
68: }
69: }
70:
71: private final Instant timestamp;
72: private final Map<String, ?> values;
73:
74: private Payload(final Instant timestamp, final Map<String, ?> values, final boolean cloneValues) {
75: this.timestamp = timestamp;
76: this.values = Collections.unmodifiableMap(cloneValues ? new HashMap<>(values) : values);
77: }
78:
79: public Instant getTimestamp() {
80: return timestamp;
81: }
82:
83: public Map<String, ?> getValues() {
84: return values;
85: }
86:
87: @Override
88: public String toString() {
89: return String.format("[Payload - timestamp: %s, values: %s]", timestamp, values);
90: }
91:
92: public static Payload of(final String key, final Object value) {
93: Objects.requireNonNull(key);
94:
95: return new Payload(Instant.now(), Collections.singletonMap(key, value), false);
96: }
97:
98: public static Payload of(final Map<String, ?> values) {
99: Objects.requireNonNull(values);
100:
101: return new Payload(Instant.now(), values, true);
102: }
103:
104: public static Payload of(final Instant timestamp, final String key, final Object value) {
105: Objects.requireNonNull(timestamp);
106: Objects.requireNonNull(key);
107:
108: return new Payload(timestamp, Collections.singletonMap(key, value), false);
109: }
110:
111: public static Payload of(final Instant timestamp, final Map<String, ?> values) {
112: Objects.requireNonNull(timestamp);
113: Objects.requireNonNull(values);
114:
115: return new Payload(timestamp, values, true);
116: }
117: }