Promote yang-xpath-api to stable 97/102997/3
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 1 Nov 2022 15:02:42 +0000 (16:02 +0100)
committerRobert Varga <nite@hq.sk>
Tue, 1 Nov 2022 16:56:35 +0000 (16:56 +0000)
Most of the constructs here are deemed stable, those that are not can be
evolved as per SemVer.

Change-Id: Ife3030039b1c2dcba1c7261533aca779ca33a811
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
33 files changed:
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/AbstractYangXPathMathSupport.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalNumberExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalXPathMathSupport.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleNumberExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleXPathMathSupport.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/QNameReferent.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/ResolvedQNameReferent.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/UnresolvedQNameReferent.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangBinaryExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangBinaryOperator.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangBooleanConstantExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangConstantExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangFilterExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangFunction.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangFunctionCallExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLiteralExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLocationPath.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangNaryExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangNaryOperator.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangNegateExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangNumberExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangPathExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangPredicateAware.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangQNameExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangVariableReferenceExpr.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathAxis.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathExpression.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathMathMode.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathMathSupport.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathNodeType.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathParser.java
xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathParserFactory.java

index f0e756e5ffcf22c3e80d622277ba3a24e40fed63..1fa8d0dcde05cd91b5f5eab9c003995c7caec4f7 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.xpath.api;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import java.util.Optional;
 
 /**
@@ -18,10 +18,9 @@ import java.util.Optional;
  * YangNumberExprs.
  *
  * @param <N> Type of YangNumberExpr
- * @author Robert Varga
  */
-@Beta
 public abstract class AbstractYangXPathMathSupport<N extends YangNumberExpr> implements YangXPathMathSupport {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final Class<N> numberClass;
@@ -67,5 +66,6 @@ public abstract class AbstractYangXPathMathSupport<N extends YangNumberExpr> imp
      */
     protected abstract YangExpr doEvaluate(YangBinaryOperator operator, N left, N right);
 
+    @Serial
     protected abstract Object readResolve();
 }
index 96cfde7f7f71cc22d5c2e6d66f13d16f23db8360..87e9ba658d2f249a16c1d1e06b557f1936f6e306 100644 (file)
@@ -9,10 +9,12 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 import org.eclipse.jdt.annotation.Nullable;
 
 final class BigDecimalNumberExpr extends YangNumberExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final BigDecimal number;
index 9044c1d178731606adef80abb554d7b6e374efe5..0e749909322e3060a2fc2f51af8280e8ae7a4045 100644 (file)
@@ -7,11 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 
 final class BigDecimalXPathMathSupport extends AbstractYangXPathMathSupport<BigDecimalNumberExpr> {
     static final BigDecimalXPathMathSupport INSTANCE = new BigDecimalXPathMathSupport();
 
+    @Serial
     private static final long serialVersionUID = 1L;
     private static final BigDecimalNumberExpr ZERO = BigDecimalNumberExpr.of(BigDecimal.ZERO);
     private static final BigDecimalNumberExpr ONE = BigDecimalNumberExpr.of(BigDecimal.ONE);
@@ -23,30 +25,22 @@ final class BigDecimalXPathMathSupport extends AbstractYangXPathMathSupport<BigD
 
     @Override
     public BigDecimalNumberExpr createNumber(final String str) {
-        switch (str) {
-            case "0":
-                return ZERO;
-            case "1":
-                return ONE;
-            case "10":
-                return TEN;
-            default:
-                return BigDecimalNumberExpr.of(new BigDecimal(str));
-        }
+        return switch (str) {
+            case "0" -> ZERO;
+            case "1" -> ONE;
+            case "10" -> TEN;
+            default -> BigDecimalNumberExpr.of(new BigDecimal(str));
+        };
     }
 
     @Override
     public BigDecimalNumberExpr createNumber(final int value) {
-        switch (value) {
-            case 0:
-                return ZERO;
-            case 1:
-                return ONE;
-            case 10:
-                return TEN;
-            default:
-                return BigDecimalNumberExpr.of(BigDecimal.valueOf(value));
-        }
+        return switch (value) {
+            case 0 -> ZERO;
+            case 1 -> ONE;
+            case 10 -> TEN;
+            default -> BigDecimalNumberExpr.of(BigDecimal.valueOf(value));
+        };
     }
 
     @Override
@@ -57,8 +51,8 @@ final class BigDecimalXPathMathSupport extends AbstractYangXPathMathSupport<BigD
     @Override
     protected YangExpr doEvaluate(final YangBinaryOperator operator, final BigDecimalNumberExpr left,
             final BigDecimalNumberExpr right) {
-        final BigDecimal l = left.getNumber();
-        final BigDecimal r = right.getNumber();
+        final var l = left.getNumber();
+        final var r = right.getNumber();
 
         return switch (operator) {
             case DIV -> BigDecimalNumberExpr.of(l.divide(r));
index 56ce14eade0ef432aa12391ef7a888dce365ce15..ffea4a8198ff8a1d27b04d03abbeffd78acb0428 100644 (file)
@@ -7,9 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 
 final class DoubleNumberExpr extends YangNumberExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final double value;
@@ -43,7 +45,7 @@ final class DoubleNumberExpr extends YangNumberExpr {
 
     @Override
     public boolean equals(final @Nullable Object obj) {
-        return this == obj || obj instanceof DoubleNumberExpr && bitEqual(((DoubleNumberExpr) obj).value);
+        return this == obj || obj instanceof DoubleNumberExpr other && bitEqual(other.value);
     }
 
     private boolean bitEqual(final double other) {
index 7aaf4c7ac56162292e10f5a36d6d237f0141248f..bf67da5b0b83ed59e1fbe55111be9287a6a3b62b 100644 (file)
@@ -7,9 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
+import java.io.Serial;
+
 final class DoubleXPathMathSupport extends AbstractYangXPathMathSupport<DoubleNumberExpr> {
     static final DoubleXPathMathSupport INSTANCE = new DoubleXPathMathSupport();
 
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private DoubleXPathMathSupport() {
@@ -34,8 +37,8 @@ final class DoubleXPathMathSupport extends AbstractYangXPathMathSupport<DoubleNu
     @Override
     protected YangExpr doEvaluate(final YangBinaryOperator operator, final DoubleNumberExpr left,
             final DoubleNumberExpr right) {
-        final double l = left.getValue();
-        final double r = right.getValue();
+        final var l = left.getValue();
+        final var r = right.getValue();
 
         return switch (operator) {
             case DIV -> DoubleNumberExpr.of(l / r);
index a642bd025501a27a8fdb942e8c35ea27d92e8be3..c1270e814e363ece14ba0918e8c497c3a1856cb6 100644 (file)
@@ -7,17 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.AbstractQName;
 
 /**
  * An object referencing a QName, either resolved or unresolved.
- *
- * @author Robert Varga
  */
-@Beta
-public interface QNameReferent extends Immutable {
+public sealed interface QNameReferent extends Immutable
+        permits ResolvedQNameReferent, UnresolvedQNameReferent, YangQNameExpr, YangLocationPath.QNameStep {
     /**
      * Return the referenced {@link AbstractQName}.
      *
index 92b454aa0b0dc55f392a07595afa5a3d663463d4..c91a98cecd84725714b566b64744ef8e782af8b3 100644 (file)
@@ -7,16 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.common.QName;
 
 /**
  * A {@link QNameReferent} referencing a resolved QName.
- *
- * @author Robert Varga
  */
-@Beta
-public interface ResolvedQNameReferent extends QNameReferent {
+public non-sealed interface ResolvedQNameReferent extends QNameReferent {
     /**
      * Return the referenced QName.
      *
index c9e74dfb711df40e496fe0ae6436a27524800b84..1781df8036d6e1aa0d02768f5cbaf98dcc77ea59 100644 (file)
@@ -7,16 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.common.UnresolvedQName;
 
 /**
  * A {@link QNameReferent} referencing an unresolved QName.
- *
- * @author Robert Varga
  */
-@Beta
-public interface UnresolvedQNameReferent extends QNameReferent {
+public non-sealed interface UnresolvedQNameReferent extends QNameReferent {
     @Override
     UnresolvedQName getQName();
 }
index 5b196f46827dbcd49278b381ed8c68cea19d9ecd..a6cb6bc517250ac844c3efbc2aa8fa3910ae2718 100644 (file)
@@ -9,17 +9,15 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import java.util.Objects;
 import org.eclipse.jdt.annotation.Nullable;
 
 /**
  * A binary expression formed of a {@link #getLeftExpr()}, an {@link #getOperator()} and a {@link #getRightExpr()}.
- *
- * @author Robert Varga
  */
-@Beta
 public abstract sealed class YangBinaryExpr implements YangExpr permits YangBinaryOperator.Expr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final YangExpr leftExpr;
index aeac3a319b8c5805aabeb1389e8b986e6bce09ce..8f6cfe6cd3c04b2d9c5766f9cb15e490735d94ea 100644 (file)
@@ -9,15 +9,12 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.Serial;
 
 /**
  * YANG XPath binary operator.
- *
- * @author Robert Varga
  */
-@Beta
 public enum YangBinaryOperator {
     /**
      * Operands are equal.
@@ -91,6 +88,7 @@ public enum YangBinaryOperator {
 
     @SuppressFBWarnings(value = "SE_INNER_CLASS", justification = "Outer class is a retained enumeration")
     final class Expr extends YangBinaryExpr {
+        @Serial
         private static final long serialVersionUID = 1L;
 
         Expr(final YangExpr leftExpr, final YangExpr rightExpr) {
@@ -109,12 +107,12 @@ public enum YangBinaryOperator {
         this.str = requireNonNull(str);
     }
 
+    public YangBinaryExpr exprWith(final YangExpr leftExpr, final YangExpr rightExpr) {
+        return new Expr(leftExpr, rightExpr);
+    }
+
     @Override
     public String toString() {
         return str;
     }
-
-    public YangBinaryExpr exprWith(final YangExpr leftExpr, final YangExpr rightExpr) {
-        return new Expr(leftExpr, rightExpr);
-    }
 }
index 85c4327dcec6c56def8f7925c54202db899dd7c1..f4f171a9d51e3037feecd46aa24d1799df2e3934 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -21,10 +20,7 @@ import org.opendaylight.yangtools.yang.common.QName;
  * <p>
  * They also map these functions' names to the constant pool under their {@link YangFunctionCallExpr#getName()}
  * identity. All users should use these constants in favor of their equivalent function calls.
- *
- * @author Robert Varga
  */
-@Beta
 public enum YangBooleanConstantExpr implements YangConstantExpr<Boolean> {
     /**
      * A constant {@code false} expression.
@@ -80,13 +76,10 @@ public enum YangBooleanConstantExpr implements YangConstantExpr<Boolean> {
     }
 
     public static Optional<YangFunctionCallExpr> forFunctionName(final String functionName) {
-        switch (functionName) {
-            case "false":
-                return Optional.of(FALSE.function);
-            case "true":
-                return Optional.of(TRUE.function);
-            default:
-                return Optional.empty();
-        }
+        return switch (functionName) {
+            case "false" -> Optional.of(FALSE.function);
+            case "true" -> Optional.of(TRUE.function);
+            default -> Optional.empty();
+        };
     }
 }
index ed7d08bb2c493660e7f9592251b0e27d7e41fc61..0b8983b8366f25e50430505113498f89e250c135 100644 (file)
@@ -7,17 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.common.QName;
 
 /**
  * Common interface for all YANG XPath constant expressions. Each constant has a unique {@link QName}, which acts as its
  * globally-unique identifier.
- *
- * @author Robert Varga
  */
-@Beta
 public sealed interface YangConstantExpr<T> extends YangExpr, Identifiable<QName> permits YangBooleanConstantExpr {
     /**
      * Return this constant's value.
index 06888aef78ac11691451645e376551b40f9575ee..89567bc053e67a40c810c76ae80d8ddaaa104a80 100644 (file)
@@ -7,16 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import java.io.Serializable;
 import org.opendaylight.yangtools.concepts.Immutable;
 
 /**
  * Common base interface for all YANG Expression components.
- *
- * @author Robert Varga
  */
-@Beta
 public sealed interface YangExpr extends Immutable, Serializable
     permits YangBinaryExpr,
             YangConstantExpr,
index 89ea8a248310c2ad5c2b5a42517eff7570d8d98a..c7f5c7a67a3eee3688fffcacded936e95909ac57 100644 (file)
@@ -9,15 +9,14 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableSet;
+import java.io.Serial;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.Set;
 import org.eclipse.jdt.annotation.Nullable;
 
-@Beta
 public sealed class YangFilterExpr implements YangExpr, YangPredicateAware {
     private static final class WithPredicates extends YangFilterExpr {
         private static final long serialVersionUID = 1L;
@@ -35,6 +34,7 @@ public sealed class YangFilterExpr implements YangExpr, YangPredicateAware {
         }
     }
 
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final YangExpr expr;
index 4e82369296028c433d1668699947553fdc5ee783..aadc8d03a78299ba6506c749eca0fe70e7854321 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.YangConstants;
@@ -20,7 +19,6 @@ import org.opendaylight.yangtools.yang.common.YangVersion;
  *
  * @author Robert Varga
  */
-@Beta
 public enum YangFunction implements Identifiable<QName> {
     // XPath 1.0 functions
     BOOLEAN("boolean"),
index a7080eb936fb35e61b83ae920ffb5d3d7fe6f894..32464478ed7b62f59bfc06fe0778cd7d6e461c80 100644 (file)
@@ -9,9 +9,8 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.util.Iterator;
+import java.io.Serial;
 import java.util.List;
 import java.util.Objects;
 import org.eclipse.jdt.annotation.Nullable;
@@ -21,10 +20,7 @@ import org.opendaylight.yangtools.yang.common.YangConstants;
 /**
  * Function call invocation. Function names without a prefix are mapped into {@link YangConstants#RFC6020_YIN_MODULE},
  * as they are required to be mapped into YANG as per RFC7950 definitions.
- *
- * @author Robert Varga
  */
-@Beta
 public sealed class YangFunctionCallExpr implements YangExpr {
     private static final class WithArgs extends YangFunctionCallExpr {
         private static final long serialVersionUID = 1L;
@@ -42,6 +38,7 @@ public sealed class YangFunctionCallExpr implements YangExpr {
         }
     }
 
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final QName name;
@@ -83,8 +80,8 @@ public sealed class YangFunctionCallExpr implements YangExpr {
 
     @Override
     public final String toString() {
-        final StringBuilder sb = new StringBuilder().append(getName()).append('(');
-        final Iterator<YangExpr> it = getArguments().iterator();
+        final var sb = new StringBuilder().append(getName()).append('(');
+        final var it = getArguments().iterator();
         if (it.hasNext()) {
             sb.append(it.next());
             while (it.hasNext()) {
index 4848bc81558fea15cdd5a3c99228c7255772a1e1..6c54b7d2cbe3fe89c552cb3339737e268481349b 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 
 /**
@@ -24,11 +24,9 @@ import org.eclipse.jdt.annotation.Nullable;
  *
  * <p>
  * A more type-safe alternative is {@link YangQNameExpr}, which should be preferred and used whenever possible.
- *
- * @author Robert Varga
  */
-@Beta
 public final class YangLiteralExpr implements YangExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
     private static final YangLiteralExpr EMPTY = new YangLiteralExpr("");
 
index 5e2cd065ddcd1e90fb3980dcdd53b0b945529a98..fabd05af23a7d768202e35e5efc1449bd6f38a80 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.xpath.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 com.google.common.collect.ImmutableList;
@@ -27,7 +26,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.UnresolvedQName;
 
-@Beta
 public abstract sealed class YangLocationPath implements YangExpr {
     public abstract static sealed class Step implements Serializable, YangPredicateAware {
         private static final long serialVersionUID = 1L;
index e228f80dc3528a1949eaa407573bc18926cd584c..4f71970a85a45fc17a005424d2352dcf439f5a04 100644 (file)
@@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
+import java.io.Serial;
 import java.util.Objects;
 import java.util.Set;
 import org.eclipse.jdt.annotation.Nullable;
@@ -19,8 +19,8 @@ import org.eclipse.jdt.annotation.Nullable;
 /**
  * A {@link YangExpr} combining a {@link YangNaryOperator} with a set of expressions.
  */
-@Beta
 public final class YangNaryExpr implements YangExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final YangNaryOperator operator;
index a4fc4051d94dbc5fb1eb9bfdc7e14edea6301797..8cf2f0bf9b12d43656833c63c9df3003334b244c 100644 (file)
@@ -9,16 +9,12 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 
 /**
- * YANG XPath binary operator.
- *
- * @author Robert Varga
+ * YANG XPath n-ary operator.
  */
-@Beta
 public enum YangNaryOperator {
     /**
      * Logical 'and' operator on operands.
@@ -51,7 +47,7 @@ public enum YangNaryOperator {
     }
 
     public YangExpr exprWith(final Collection<YangExpr> exprs) {
-        final ImmutableSet<YangExpr> set = ImmutableSet.copyOf(exprs);
+        final var set = ImmutableSet.copyOf(exprs);
         return set.size() == 1 ? set.iterator().next() : new YangNaryExpr(this, set);
     }
 }
index ee9b7d0c744a54e5e9a243a9200f89032e23e0f7..8deed2e918c0b9e3981b543c61b9102fb771bfd8 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 
-@Beta
 public final class YangNegateExpr implements YangExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final YangExpr subExpr;
index a76bc01afe89e831326fcb77a9e36544d853bd85..d9416ce7be27e6a9f903c3f7a0b20462af248771 100644 (file)
@@ -7,14 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 
 /**
  * A number-bearing expression.
  */
-@Beta
 public abstract sealed class YangNumberExpr implements YangExpr permits BigDecimalNumberExpr, DoubleNumberExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     public abstract Number getNumber();
index d305b90cf01bc14899192232f58fb953ca5c22f4..ac52e6c77a3755fc40171e5b879d320b12c33a5a 100644 (file)
@@ -9,15 +9,15 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import java.util.Objects;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath.Relative;
 
-@Beta
 public sealed class YangPathExpr implements YangExpr {
     private static final class WithLocation extends YangPathExpr {
+        @Serial
         private static final long serialVersionUID = 1L;
 
         private final Relative locationPath;
@@ -33,6 +33,7 @@ public sealed class YangPathExpr implements YangExpr {
         }
     }
 
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final YangExpr filterExpr;
index fd07ec215a6855d7f8961263d0e57838f37440bb..76a8a736bb580d0d9faff655e571a368e412117a 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableSet;
 import java.util.Set;
 import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath.Step;
@@ -15,10 +14,7 @@ import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath.Step;
 /**
  * Common interface for {@link YangFilterExpr} and {@link Step}, both of which can contain predicates. Predicates are
  * expressed in terms of {@link YangExpr}.
- *
- * @author Robert Varga
  */
-@Beta
 public interface YangPredicateAware {
     default Set<YangExpr> getPredicates() {
         return ImmutableSet.of();
index c9dd4d65b899117a452a9aa11fa9817127d101f4..710b6ce8037ebde2d444c4b2114d0a5b1f3b64f5 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.UnresolvedQName;
@@ -23,11 +23,10 @@ import org.opendaylight.yangtools.yang.common.UnresolvedQName;
  * Parsers and users of this package are encouraged to use this class in place of {@link YangLiteralExpr} where
  * appropriate, as it retains type safety and more semantic context.
  *
- * @author Robert Varga
  */
-@Beta
 public abstract sealed class YangQNameExpr implements YangExpr, QNameReferent {
     public static final class Resolved extends YangQNameExpr implements ResolvedQNameReferent {
+        @Serial
         private static final long serialVersionUID = 1L;
 
         private final QName qname;
@@ -58,6 +57,7 @@ public abstract sealed class YangQNameExpr implements YangExpr, QNameReferent {
     }
 
     public static final class Unresolved extends YangQNameExpr implements UnresolvedQNameReferent {
+        @Serial
         private static final long serialVersionUID = 1L;
 
         private final UnresolvedQName qname;
@@ -87,6 +87,7 @@ public abstract sealed class YangQNameExpr implements YangExpr, QNameReferent {
         }
     }
 
+    @Serial
     private static final long serialVersionUID = 1L;
 
     public static Unresolved of(final UnresolvedQName qname) {
index 46526487cff5234a0a6b3f9f94927826a1a42bbe..81a7b1765cdee676ed4cb48b572eeca48698f2b6 100644 (file)
@@ -9,12 +9,12 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
+import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 
-@Beta
 public final class YangVariableReferenceExpr implements YangExpr {
+    @Serial
     private static final long serialVersionUID = 1L;
 
     private final QName variableName;
index 1f2a5ae88048b7ded324edce74aca23feefc4762..d5d3933c009f3713b5b3c45e76d411fcc8b8dee3 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -25,10 +24,7 @@ import org.opendaylight.yangtools.yang.xpath.api.YangLocationPath.UnresolvedQNam
 
 /**
  * XPath evaluation axis, as defined in <a href="https://www.w3.org/TR/1999/REC-xpath-19991116/#axes">XPath 1.0</a>.
- *
- * @author Robert Varga
  */
-@Beta
 public enum YangXPathAxis {
     /**
      * The {@code child} axis.
index 58004a95b8ba9d6bc1d2102ec95f4f96bb35aab8..99f4fe03547fa5d8785194f22821e817c85fdf02 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import javax.xml.xpath.XPathExpressionException;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -41,10 +40,7 @@ import org.opendaylight.yangtools.yang.common.YangVersion;
  *     object model.
  * </li>
  * </ul>
- *
- * @author Robert Varga
  */
-@Beta
 public interface YangXPathExpression extends Immutable {
     /**
      * A Qualified-bound expression. All {@link Qualified}s are eliminated and replaced with {@link QName}s.
index 9411b0becb07dbe79db3cdf36ff9af523ac5ac22..487b8f8582d8c27e9c73a87f98373284b7bbd5ff 100644 (file)
@@ -9,15 +9,12 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
-
 /**
  * {@link YangXPathParser} number compliance knobs. This enumeration defines what assumptions the parser can make --
  * affecting its optimization properties around
  * <a href="https://en.wikipedia.org/wiki/Constant_folding">constant folding</a> when number expressions are
  * involved.
  */
-@Beta
 public enum YangXPathMathMode {
     /**
      * All number expressions are treated as {@code double}. This in spirit of XPath 1.0 -- any number expression
index e6c2b0d8a085c41423d10e8c5e6c8a578f30c9d3..0195c1cccf9591291be2344f57ff7bfba4a06054 100644 (file)
@@ -7,17 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import java.io.Serializable;
 import java.util.Optional;
 
 /**
  * Interface supporting mathematical operations. This interface should be implemented by subclassing
  * {@link AbstractYangXPathMathSupport}, which provides type safety guards.
- *
- * @author Robert Varga
  */
-@Beta
 public interface YangXPathMathSupport extends Serializable {
     /**
      * Create a {@link YangNumberExpr} backed by specified string.
index 62f40ecb22437912aa9756822116933e38bfb3cb..63e6801031cbb99d621d0ecb50e287634dd7b149 100644 (file)
@@ -9,14 +9,9 @@ package org.opendaylight.yangtools.yang.xpath.api;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
-
 /**
  * XPath node type as defined in <a href="https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-NodeType">XPath 1.0</a>.
- *
- * @author Robert Varga
  */
-@Beta
 public enum YangXPathNodeType {
     /**
      * A {@code comment}.
index 7c06db7204a1e5db56ca273abec718f3cf172061..19c8d101963dee097c57d6a8949ec1b38e473d73 100644 (file)
@@ -7,17 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import javax.xml.xpath.XPathExpressionException;
 import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
 
 /**
  * Interface for converting a String into a {@link YangXPathExpression}. Implementations of this interface are expected
  * to be NOT thread-safe.
- *
- * @author Robert Varga
  */
-@Beta
 public interface YangXPathParser {
     /**
      * A {@link YangXPathParser} bound to a {@link YangNamespaceContext}, producing Qualified-bound Expressions.
@@ -41,7 +37,7 @@ public interface YangXPathParser {
      *
      * @param xpath XPath expression string
      * @return A parsed {@link YangXPathExpression}
-     * @throws NullPointerException if {@code xpath} is null
+     * @throws NullPointerException if {@code xpath} is {@code null}
      * @throws XPathExpressionException when the expression cannot be parsed
      */
     YangXPathExpression parseExpression(String xpath) throws XPathExpressionException;
index 9b5a6413a9ee5d0691c451a16ede708e88cfb857..eb319bfce065aeb1c80f266839cc4432b1fca7c1 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.xpath.api;
 
-import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
@@ -17,7 +16,6 @@ import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
  *
  * @author Robert Varga
  */
-@Beta
 public interface YangXPathParserFactory {
     /**
      * Return a {@link YangXPathParser} compliant with {@link YangXPathMathMode#IEEE754}. Returned parser will not
@@ -35,7 +33,7 @@ public interface YangXPathParserFactory {
      *
      * @param mathMode Requested XPath number compliance
      * @return An XPathParser
-     * @throws NullPointerException if {@code mathMode} is null
+     * @throws NullPointerException if {@code mathMode} is {code null}
      */
     YangXPathParser newParser(YangXPathMathMode mathMode);
 
@@ -45,7 +43,7 @@ public interface YangXPathParserFactory {
      *
      * @param namespaceContext Prefix-to-namespace resolver, used to bind qualified node identifiers
      * @return An XPathParser
-     * @throws NullPointerException if {@code namespaceContext} is null
+     * @throws NullPointerException if {@code namespaceContext} is {code null}
      */
     default YangXPathParser.QualifiedBound newParser(final YangNamespaceContext namespaceContext) {
         return newParser(YangXPathMathMode.IEEE754, namespaceContext);
@@ -58,7 +56,7 @@ public interface YangXPathParserFactory {
      * @param mathMode Requested XPath number compliance
      * @param namespaceContext Prefix-to-namespace resolver, used to bind qualified node identifiers
      * @return An XPathParser
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {code null}
      */
     YangXPathParser.QualifiedBound newParser(YangXPathMathMode mathMode, YangNamespaceContext namespaceContext);
 
@@ -69,7 +67,7 @@ public interface YangXPathParserFactory {
      * @param namespaceContext Prefix-to-namespace resolver, used to bind qualified node identifiers
      * @param defaultNamespace Default namespace, used to bind unqualified node identifiers
      * @return An XPathParser
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {code null}
      */
     default YangXPathParser.UnqualifiedBound newParser(final YangNamespaceContext namespaceContext,
             final QNameModule defaultNamespace) {
@@ -84,7 +82,7 @@ public interface YangXPathParserFactory {
      * @param namespaceContext Prefix-to-namespace resolver, used to bind qualified node identifiers
      * @param defaultNamespace Default namespace, used to bind unqualified node identifiers
      * @return An XPathParser
-     * @throws NullPointerException if any argument is null
+     * @throws NullPointerException if any argument is {code null}
      */
     YangXPathParser.UnqualifiedBound newParser(YangXPathMathMode mathMode, YangNamespaceContext namespaceContext,
             QNameModule defaultNamespace);