blob: 5f582c9fcee9f01172b15f1245e1455a147e5c00 [file] [log] [blame]
Matthias Andreas Benkardb8fbc372021-05-11 06:50:45 +02001package eu.mulk.quarkus.googlecloud.jsonlogging;
2
3import java.math.BigDecimal;
4import java.math.BigInteger;
5import javax.json.Json;
6import javax.json.JsonObjectBuilder;
7import javax.json.JsonValue;
8
9public record KeyValueParameter(String key, JsonValue value) implements StructuredParameter {
10
11 public static KeyValueParameter of(String key, String value) {
12 return new KeyValueParameter(key, Json.createValue(value));
13 }
14
15 public static KeyValueParameter of(String key, int value) {
16 return new KeyValueParameter(key, Json.createValue(value));
17 }
18
19 public static KeyValueParameter of(String key, long value) {
20 return new KeyValueParameter(key, Json.createValue(value));
21 }
22
23 public static KeyValueParameter of(String key, double value) {
24 return new KeyValueParameter(key, Json.createValue(value));
25 }
26
27 public static KeyValueParameter of(String key, BigDecimal value) {
28 return new KeyValueParameter(key, Json.createValue(value));
29 }
30
31 public static KeyValueParameter of(String key, BigInteger value) {
32 return new KeyValueParameter(key, Json.createValue(value));
33 }
34
35 public static KeyValueParameter of(String key, boolean value) {
36 return new KeyValueParameter(key, value ? JsonValue.TRUE : JsonValue.FALSE);
37 }
38
39 @Override
40 public JsonObjectBuilder json() {
41 return Json.createObjectBuilder().add(key, value);
42 }
43}