Promote plugin-generator-api 96/102996/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 1 Nov 2022 14:47:55 +0000 (15:47 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 1 Nov 2022 14:47:55 +0000 (15:47 +0100)
The interfaces here are mature enough to not need special treatment,
drop @Beta annotations.

Change-Id: I829bf26856cd3e299d5a18fe0939ecd68b0fad38
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/AbstractFileGeneratorFactory.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/AbstractGeneratedFile.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/AbstractGeneratedTextFile.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/FileGenerator.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/FileGeneratorException.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/FileGeneratorFactory.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/GeneratedFile.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/GeneratedFileLifecycle.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/GeneratedFilePath.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/GeneratedFileType.java
plugin/plugin-generator-api/src/main/java/org/opendaylight/yangtools/plugin/generator/api/ModuleResourceResolver.java

index 4f422a06359e6b1d32aa00cc2fef609415648ab9..6ade8a44726a0be8247aa3d278a2b886aa531471 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.plugin.generator.api;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
-import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable;
 
@@ -17,7 +16,6 @@ import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable;
  * Abstract base class for {@link FileGeneratorFactory} implementations. Its constructor enforces no spaces in
  * identifier.
  */
-@Beta
 @NonNullByDefault
 public abstract class AbstractFileGeneratorFactory extends AbstractSimpleIdentifiable<String>
         implements FileGeneratorFactory {
index 840ad76b1539ef3a82ccc3b79798da327da6f035..2f124c5e77572b4b407bf8c7a7e3092eebb7f8c4 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.plugin.generator.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -20,7 +19,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
  *
  * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public abstract class AbstractGeneratedFile implements GeneratedFile {
     private final GeneratedFileLifecycle lifecycle;
index b4c38bf9e4c45b75b3b6b0c34ab56ca883f95584..0467da5156da5315aabb8f8de7a38d611dbc5e36 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -22,7 +21,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
  *
  * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public abstract class AbstractGeneratedTextFile extends AbstractGeneratedFile {
     protected AbstractGeneratedTextFile(final GeneratedFileLifecycle lifecycle) {
@@ -31,8 +29,8 @@ public abstract class AbstractGeneratedTextFile extends AbstractGeneratedFile {
 
     @Override
     public final void writeBody(final OutputStream output) throws IOException {
-        try (Writer writer = new OutputStreamWriter(output, StandardCharsets.UTF_8)) {
-            try (BufferedWriter buffered = new BufferedWriter(writer)) {
+        try (var writer = new OutputStreamWriter(output, StandardCharsets.UTF_8)) {
+            try (var buffered = new BufferedWriter(writer)) {
                 writeBody(buffered);
             }
         }
index 9385c2a1c65e21a50c1cf6b5b7428b24db23ae54..e877c86c75377851959e9fb0b8145e6876d85f9d 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.Table;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -20,14 +19,16 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
  *
  * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public interface FileGenerator {
     /**
      * Indicate import resolution mode this code generator requires. Default implementation indicates
      * {@link ImportResolutionMode#REVISION_EXACT_OR_LATEST}.
      *
-     * @return Required import resolution mode, null if the code generator does not care.
+     * @implNote
+     *     Default implementation returns {@link ImportResolutionMode#REVISION_EXACT_OR_LATEST}.
+     *
+     * @return Required import resolution mode.
      */
     default ImportResolutionMode importResolutionMode() {
         return ImportResolutionMode.REVISION_EXACT_OR_LATEST;
@@ -54,7 +55,6 @@ public interface FileGenerator {
     /**
      * {@link EffectiveModelContext} can be assembled in multiple ways, we hold known modes here.
      */
-    @Beta
     enum ImportResolutionMode {
         /**
          * Standard, RFC6020 and RFC7950 compliant mode. Imports are satisfied by exact revision match (if specified),
index 18c32e97babaa0fb1732aff726f16cae0c7822c9..6eccb6c909fc31830d297b5eed25fa94cecb0f08 100644 (file)
@@ -9,14 +9,14 @@ package org.opendaylight.yangtools.plugin.generator.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 
 /**
  * An exception reporting a problem with file generation. This exception should be reported when exception chaining
  * occurs.
  */
-@Beta
 public class FileGeneratorException extends Exception {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     public FileGeneratorException(final String message) {
index 4b4deb6a8af44bb2b04ba87ffaee7f2815f2842b..0e2df94cc56da1ae21e4fe1c37a7fb5e365090d0 100644 (file)
@@ -7,17 +7,13 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import java.util.Map;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.concepts.Identifiable;
 
 /**
  * A {@link java.util.ServiceLoader} factory for instantiating {@link FileGenerator} instances.
- *
- * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public interface FileGeneratorFactory extends Identifiable<String> {
     /**
index df2a8be1c61c2097c9d8bfb8a6acce2f73b9fe43..25d5100d29da856500dc3b4cb359b824a1375409 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import com.google.common.io.ByteSource;
 import com.google.common.io.CharSource;
 import java.io.IOException;
@@ -18,10 +17,7 @@ import org.opendaylight.yangtools.concepts.Immutable;
 
 /**
  * The contents of a generated file and its {@link GeneratedFileLifecycle}.
- *
- * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public interface GeneratedFile extends Immutable {
     /**
@@ -36,6 +32,7 @@ public interface GeneratedFile extends Immutable {
      *
      * @param output stream where to write the output
      * @throws IOException when the stream reports an IOException
+     * @throws NullPointerException if {@code output} is {@code null}
      */
     void writeBody(OutputStream output) throws IOException;
 
@@ -46,7 +43,7 @@ public interface GeneratedFile extends Immutable {
      * @param lifecycle File lifecycle
      * @param body File body
      * @return A GeneratedFile.
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {@code null}
      */
     static GeneratedFile of(final GeneratedFileLifecycle lifecycle, final CharSequence body) {
         return new CharSeqGeneratedTextFile(lifecycle, body);
@@ -59,7 +56,7 @@ public interface GeneratedFile extends Immutable {
      * @param lifecycle File lifecycle
      * @param body File body
      * @return A GeneratedFile.
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {@code null}
      */
     static GeneratedFile of(final GeneratedFileLifecycle lifecycle, final CharSource body) {
         return new CharSourceGeneratedTextFile(lifecycle, body);
@@ -71,7 +68,7 @@ public interface GeneratedFile extends Immutable {
      * @param lifecycle File lifecycle
      * @param body File body
      * @return A GeneratedFile.
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {@code null}
      */
     static GeneratedFile of(final GeneratedFileLifecycle lifecycle, final ByteSource body) {
         return new ByteSourceGeneratedFile(lifecycle, body);
index 17664fc033b570c5a3f72186c7cefd7e5a7792d9..3c52959a7dcafd85378341430b9c68ba9f6eca25 100644 (file)
@@ -7,15 +7,11 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 
 /**
  * Lifecycle policy of a generated file. This governs how existing files interact with newly-generated bodies.
- *
- * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public enum GeneratedFileLifecycle {
     /**
index 8c74906ee769d57b2120c81c15375865338d6405..d54a10d90d5de5d3df63683e5eeaccab1acf3311 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.plugin.generator.api;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.base.CharMatcher;
 import com.google.common.base.MoreObjects;
 import java.io.File;
@@ -19,10 +18,7 @@ import org.eclipse.jdt.annotation.Nullable;
 
 /**
  * A relative path to a generated file.
- *
- * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public final class GeneratedFilePath {
     public static final char SEPARATOR = '/';
@@ -60,7 +56,7 @@ public final class GeneratedFilePath {
 
     @Override
     public boolean equals(final @Nullable Object obj) {
-        return this == obj || obj instanceof GeneratedFilePath && path.equals(((GeneratedFilePath) obj).path);
+        return this == obj || obj instanceof GeneratedFilePath other && path.equals(other.path);
     }
 
     @Override
index ef871484b046c2e7428c07878ee5727891e503d2..96a7388db1e00bdd331e04582faa005b61840bf6 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.plugin.generator.api;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableMap;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -25,10 +24,7 @@ import org.eclipse.jdt.annotation.Nullable;
  * output structures. Notably they must handle pre-defined types, allow end users to specify mapping of custom types.
  * They need to deal with runtime mismatches involving between FileGenerators and user's expectations, for example by
  * issuing warnings when a mismatch is detected.
- *
- * @author Robert Varga
  */
-@Beta
 @NonNullByDefault
 public final class GeneratedFileType {
     /**
@@ -52,7 +48,7 @@ public final class GeneratedFileType {
 
     public static GeneratedFileType of(final String name) {
         checkArgument(!name.isEmpty());
-        final @Nullable GeneratedFileType wellKnown = WELL_KNOWN.get(name);
+        final var wellKnown = WELL_KNOWN.get(name);
         return wellKnown != null ? wellKnown : new GeneratedFileType(name);
     }
 
@@ -67,7 +63,7 @@ public final class GeneratedFileType {
 
     @Override
     public boolean equals(final @Nullable Object obj) {
-        return this == obj || obj instanceof GeneratedFileType && name.equals(((GeneratedFileType) obj).name);
+        return this == obj || obj instanceof GeneratedFileType other && name.equals(other.name);
     }
 
     @Override
index c97d03e31f476507b353617db31a1af826801c5d..963ca9d1a8a66900f5d405c2123d77b728536f3c 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.plugin.generator.api;
 
-import com.google.common.annotations.Beta;
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
@@ -17,7 +16,6 @@ import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
  * An SPI-level interface to find the schema source for a particular YANG module, as packaged in the final artifact.
  * The module must be part of the current resolution context.
  */
-@Beta
 public interface ModuleResourceResolver {
     /**
      * Find the path of the packaged resource which corresponds to the specified module in the specified representation.
@@ -25,7 +23,7 @@ public interface ModuleResourceResolver {
      * @param module Requested module
      * @param representation Requested representation
      * @return Path to packaged resource
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {@code null}
      * @throws IllegalArgumentException if the requested representation is not supported by this resolver
      */
     Optional<String> findModuleResourcePath(ModuleLike module,