Clean up yang-xpath-impl warnings 54/100854/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Apr 2022 19:31:45 +0000 (21:31 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Apr 2022 19:51:06 +0000 (21:51 +0200)
Disconnect the DI implementation and add some javadocs.

Change-Id: I97f588d3d01a2d3f0a6a410d63c6b671550ebf4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
xpath/yang-xpath-impl/pom.xml
xpath/yang-xpath-impl/src/main/java/module-info.java
xpath/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/AntlrXPathParserFactory.java
xpath/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/di/DefaultXPathParserFactory.java

index b84b4620a9f8f5bdea10f927c8085db1687c50d0..f27c86d15bd80093c823cd18366699844b8bc79d 100644 (file)
@@ -17,7 +17,6 @@
     </parent>
 
     <artifactId>yang-xpath-impl</artifactId>
-    <version>9.0.0-SNAPSHOT</version>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
     <description>YANG XPath parser</description>
index 2dd0c08780bb4eef17a0e343a81342b625f676fa..7463ee40afd26aadd548c340d54a1a7a43fb357c 100644 (file)
@@ -8,20 +8,23 @@
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory;
 import org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParserFactory;
 
+/**
+ * Reference implementation of YANG XPath parser.
+ */
 module org.opendaylight.yangtools.yang.xpath.impl {
     exports org.opendaylight.yangtools.yang.xpath.impl.di;
 
     provides YangXPathParserFactory with AntlrXPathParserFactory;
 
+    requires transitive org.opendaylight.yangtools.yang.xpath.api;
     requires java.xml;
     requires org.antlr.antlr4.runtime;
     requires org.opendaylight.yangtools.yang.common;
-    requires org.opendaylight.yangtools.yang.xpath.api;
     requires org.slf4j;
 
     // Annotations
+    requires static transitive javax.inject;
     requires static com.github.spotbugs.annotations;
-    requires static javax.inject;
     requires static org.eclipse.jdt.annotation;
     requires static org.kohsuke.metainf_services;
     requires static org.osgi.service.component.annotations;
index cf0b87ab33e008e966003bb842a35b99db765ceb..249f14d806287e3cae38ac20b875f92b82890c51 100644 (file)
@@ -23,23 +23,22 @@ import org.slf4j.LoggerFactory;
 
 @MetaInfServices
 @Component(immediate = true)
-public class AntlrXPathParserFactory implements YangXPathParserFactory {
+public final class AntlrXPathParserFactory implements YangXPathParserFactory {
     private static final Logger LOG = LoggerFactory.getLogger(AntlrXPathParserFactory.class);
 
     @Override
-    public final YangXPathParser newParser(final YangXPathMathMode mathMode) {
+    public YangXPathParser newParser(final YangXPathMathMode mathMode) {
         return new AntlrXPathParser.Base(mathMode);
     }
 
     @Override
-    public final QualifiedBound newParser(final YangXPathMathMode mathMode,
-            final YangNamespaceContext namespaceContext) {
+    public QualifiedBound newParser(final YangXPathMathMode mathMode, final YangNamespaceContext namespaceContext) {
         return new AntlrXPathParser.Qualified(mathMode, namespaceContext);
     }
 
     @Override
-    public final UnqualifiedBound newParser(final YangXPathMathMode mathMode,
-            final YangNamespaceContext namespaceContext, final QNameModule defaultNamespace) {
+    public UnqualifiedBound newParser(final YangXPathMathMode mathMode, final YangNamespaceContext namespaceContext,
+            final QNameModule defaultNamespace) {
         return new AntlrXPathParser.Unqualified(mathMode, namespaceContext, defaultNamespace);
     }
 
index 83e0a0e1828538241a604a902e25c52a12ee7a32..81a444057e751be5e46b794014088786e1761e69 100644 (file)
@@ -9,12 +9,44 @@ package org.opendaylight.yangtools.yang.xpath.impl.di;
 
 import javax.inject.Inject;
 import javax.inject.Singleton;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathMathMode;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathParser;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathParser.QualifiedBound;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathParser.UnqualifiedBound;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory;
 import org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParserFactory;
 
+/**
+ * Default implementation of {@link YangXPathParserFactory} for {@code javax.inject}-based dependency injection
+ * frameworks.
+ */
 @Singleton
-public final class DefaultXPathParserFactory extends AntlrXPathParserFactory {
+public final class DefaultXPathParserFactory implements YangXPathParserFactory {
+    private final AntlrXPathParserFactory delegate = new AntlrXPathParserFactory();
+
+    /**
+     * Construct a parser factory.
+     */
     @Inject
     public DefaultXPathParserFactory() {
         // Noop
     }
+
+    @Override
+    public YangXPathParser newParser(YangXPathMathMode mathMode) {
+        return delegate.newParser(mathMode);
+    }
+
+    @Override
+    public QualifiedBound newParser(final YangXPathMathMode mathMode, final YangNamespaceContext namespaceContext) {
+        return delegate.newParser(mathMode, namespaceContext);
+    }
+
+    @Override
+    public UnqualifiedBound newParser(final YangXPathMathMode mathMode, final YangNamespaceContext namespaceContext,
+            final QNameModule defaultNamespace) {
+        return delegate.newParser(mathMode, namespaceContext, defaultNamespace);
+    }
 }