Use API Guardian annotations.
Change-Id: Icfd30e9b06e5c7ee9f51c6879bfe4978a6f44600
diff --git a/pom.xml b/pom.xml
index 7d4ce60..1623195 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,7 @@
<spotless-plugin.version>2.17.6</spotless-plugin.version>
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
+ <apiguardian.version>1.1.2</apiguardian.version>
<errorprone.version>2.10.0</errorprone.version>
<google-java-format.version>1.13.0</google-java-format.version>
<jetbrains-annotations.version>22.0.0</jetbrains-annotations.version>
@@ -94,6 +95,12 @@
<version>${jetbrains-annotations.version}</version>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>org.apiguardian</groupId>
+ <artifactId>apiguardian-api</artifactId>
+ <version>${apiguardian.version}</version>
+ <optional>true</optional>
+ </dependency>
<!-- Testing -->
<dependency>
diff --git a/src/main/java/eu/mulk/jgvariant/core/Decoder.java b/src/main/java/eu/mulk/jgvariant/core/Decoder.java
index d0c0323..d30366e 100644
--- a/src/main/java/eu/mulk/jgvariant/core/Decoder.java
+++ b/src/main/java/eu/mulk/jgvariant/core/Decoder.java
@@ -12,6 +12,8 @@
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
+import org.apiguardian.api.API;
+import org.apiguardian.api.API.Status;
import org.jetbrains.annotations.Nullable;
/**
@@ -42,6 +44,7 @@
* @param <T> the type that the {@link Decoder} can decode.
*/
@SuppressWarnings("java:S1610")
+@API(status = Status.EXPERIMENTAL)
public abstract class Decoder<T> {
private Decoder() {}
diff --git a/src/main/java/eu/mulk/jgvariant/core/Signature.java b/src/main/java/eu/mulk/jgvariant/core/Signature.java
index bb03b94..d9de5f1 100644
--- a/src/main/java/eu/mulk/jgvariant/core/Signature.java
+++ b/src/main/java/eu/mulk/jgvariant/core/Signature.java
@@ -6,6 +6,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import org.apiguardian.api.API;
+import org.apiguardian.api.API.Status;
/**
* A GVariant signature string.
@@ -24,6 +26,7 @@
* an array of 32-bit integers
* </dl>
*/
+@API(status = Status.STABLE)
public final class Signature {
private final String signatureString;
diff --git a/src/main/java/eu/mulk/jgvariant/core/Variant.java b/src/main/java/eu/mulk/jgvariant/core/Variant.java
index 134a5e8..1438d9d 100644
--- a/src/main/java/eu/mulk/jgvariant/core/Variant.java
+++ b/src/main/java/eu/mulk/jgvariant/core/Variant.java
@@ -1,5 +1,8 @@
package eu.mulk.jgvariant.core;
+import org.apiguardian.api.API;
+import org.apiguardian.api.API.Status;
+
/**
* A dynamically typed GVariant value carrying a {@link Signature} describing its type.
*
@@ -23,4 +26,5 @@
* Integer}, {@link Long}, {@link String}, {@link java.util.Optional}, {@link java.util.List},
* {@link Object[]}, {@link Variant}.
*/
+@API(status = Status.EXPERIMENTAL)
public record Variant(Signature signature, Object value) {}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 39e91b8..c0debad 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -8,6 +8,7 @@
module eu.mulk.jgvariant.core {
requires com.google.errorprone.annotations;
requires org.jetbrains.annotations;
+ requires org.apiguardian.api;
exports eu.mulk.jgvariant.core;
}