summaryrefslogtreecommitdiff
path: root/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java')
-rw-r--r--runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java181
1 files changed, 0 insertions, 181 deletions
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
deleted file mode 100644
index a5924b4..0000000
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/KeyValueParameter.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package eu.mulk.quarkus.googlecloud.jsonlogging;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Objects;
-import javax.json.Json;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
-
-/**
- * A simple single key–value pair forming a {@link StructuredParameter}.
- *
- * <p>This class is suitable for the common case of logging a key–value pair as parameter to the
- * {@code *f} family of logging functions on {@link org.jboss.logging.Logger}. For advanced use
- * cases, provide your own implementation of {@link StructuredParameter}.
- *
- * <p><strong>Example:</strong>
- *
- * <pre>{@code
- * logger.infof("Application starting.", StructuredParameter.of("version", "1.0"));
- * }</pre>
- *
- * Result:
- *
- * <pre>{@code
- * {
- * "jsonPayload": {
- * "message": "Application starting.",
- * "version": "1.0"
- * }
- * }
- * }</pre>
- *
- * @see Label
- * @see StructuredParameter
- */
-public final class KeyValueParameter implements StructuredParameter {
-
- private final String key;
- private final JsonValue value;
-
- private KeyValueParameter(String key, JsonValue value) {
- this.key = key;
- this.value = value;
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@link String} value.
- *
- * <p>The resulting JSON value is of type {@code string}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, String value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from an {@code int} value.
- *
- * <p>The resulting JSON value is of type {@code number}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, int value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@code long} value.
- *
- * <p>The resulting JSON value is of type {@code number}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, long value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@code double} value.
- *
- * <p>The resulting JSON value is of type {@code number}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, double value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@link BigDecimal} value.
- *
- * <p>The resulting JSON value is of type {@code number}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, BigDecimal value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@link BigInteger} value.
- *
- * <p>The resulting JSON value is of type {@code number}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, BigInteger value) {
- return new KeyValueParameter(key, Json.createValue(value));
- }
-
- /**
- * Creates a {@link KeyValueParameter} from a {@code boolean} value.
- *
- * <p>The resulting JSON value is of type {@code boolean}.
- *
- * @param key the key part of the key–value pair.
- * @param value the value part of the key–value pair.
- * @return the newly constructed parameter, ready to be passed to a logging function.
- */
- public static KeyValueParameter of(String key, boolean value) {
- return new KeyValueParameter(key, value ? JsonValue.TRUE : JsonValue.FALSE);
- }
-
- @Override
- public JsonObjectBuilder json() {
- return Json.createObjectBuilder().add(key, value);
- }
-
- /**
- * The key part of the key–value pair.
- *
- * @return the key part of the key–value pair.
- */
- public String key() {
- return key;
- }
-
- /**
- * The value part of the key–value pair.
- *
- * <p>Can be of any non-composite JSON type (i.e. {@code string}, {@code number}, or {@code
- * boolean}).
- *
- * @return the value pairt of the key–value pair.
- */
- public JsonValue value() {
- return value;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) return true;
- if (obj == null || obj.getClass() != this.getClass()) return false;
- var that = (KeyValueParameter) obj;
- return Objects.equals(this.key, that.key) && Objects.equals(this.value, that.value);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(key, value);
- }
-
- @Override
- public String toString() {
- return "KeyValueParameter[" + "key=" + key + ", " + "value=" + value + ']';
- }
-}