From 072f19ab77c1566ddf7214c4926f5330c1d572dd Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:16:21 +0200 Subject: [PATCH 1/3] feat: Add read-only getters for `Point.fields` and `Point.tags` This makes testing easier. --- .../java/com/influxdb/client/write/Point.java | 19 +++++++++++++++++ .../com/influxdb/client/write/PointTest.java | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/client/src/main/java/com/influxdb/client/write/Point.java b/client/src/main/java/com/influxdb/client/write/Point.java index cc0d38c4d25..a8530f9ddf6 100644 --- a/client/src/main/java/com/influxdb/client/write/Point.java +++ b/client/src/main/java/com/influxdb/client/write/Point.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeMap; +import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -95,6 +96,24 @@ public static Point measurement(@Nonnull final String measurementName) { return new Point(measurementName); } + /** + * Returns a read-only reference to the tags. + * @return The point tags as read-only map. + */ + @Nonnull + public Map getTags() { + return Collections.unmodifiableMap(this.tags); + } + + /** + * Returns a read-only reference to the fields. + * @return The point fields as read-only map. + */ + @Nonnull + public Map getFields() { + return Collections.unmodifiableMap(this.fields); + } + /** * Adds or replaces a tag value for this point. * diff --git a/client/src/test/java/com/influxdb/client/write/PointTest.java b/client/src/test/java/com/influxdb/client/write/PointTest.java index e93827055e5..b71aad0afe6 100644 --- a/client/src/test/java/com/influxdb/client/write/PointTest.java +++ b/client/src/test/java/com/influxdb/client/write/PointTest.java @@ -24,13 +24,17 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.time.Instant; +import java.util.Collections; import java.util.HashMap; +import java.util.Map; import com.influxdb.client.domain.WritePrecision; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertThrows; + /** * @author Jakub Bednar (bednar@github) (11/10/2018 12:57) */ @@ -438,4 +442,21 @@ void addFields() { Assertions.assertThat(point.toLineProtocol()).isEqualTo("h2o,location=europe accepted=true,level=2i,power=2.56"); } + + @Test + void getFieldsGetTags() { + Point point = Point.measurement("h2 o") + .addTag("location", "europe") + .addField("level", 2); + + Map fields = point.getFields(); + Map tags = point.getTags(); + + Assertions.assertThat(fields).isEqualTo(Map.of("level",2L)); + Assertions.assertThat(tags).isEqualTo(Map.of("location","europe")); + + // Assert that returned maps are immutable + assertThrows(UnsupportedOperationException.class, () -> fields.put("test", "value")); + assertThrows(UnsupportedOperationException.class, () -> tags.put("test", "value")); + } } \ No newline at end of file From 8be4f1f99cc6934aea5102c44e32b5fc9377a1ed Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:22:39 +0200 Subject: [PATCH 2/3] docs: Add #828 to changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 915e96e5aa1..762fd237823 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 7.4.0 [unreleased] +### Features + +- [#828](https://github.com/influxdata/influxdb-client-java/pull/828): Add read-only getters for `Point.fields` and `Point.tags` + ## 7.3.0 [2025-05-22] ### Features From 48b0080bff21a219ba23cb9e03b24bdfecad8498 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schmidt Date: Sun, 13 Jul 2025 20:29:56 +0200 Subject: [PATCH 3/3] style: Fix checkstyle warning --- client/src/main/java/com/influxdb/client/write/Point.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main/java/com/influxdb/client/write/Point.java b/client/src/main/java/com/influxdb/client/write/Point.java index a8530f9ddf6..c8f6eee21be 100644 --- a/client/src/main/java/com/influxdb/client/write/Point.java +++ b/client/src/main/java/com/influxdb/client/write/Point.java @@ -26,11 +26,11 @@ import java.text.NumberFormat; import java.time.Instant; import java.util.Collection; +import java.util.Collections; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TreeMap; -import java.util.Collections; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream;