Disconnect the DI implementation and add some javadocs.
Change-Id: I97f588d3d01a2d3f0a6a410d63c6b671550ebf4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
</parent>
<artifactId>yang-xpath-impl</artifactId>
- <version>9.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>YANG XPath parser</description>
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;
@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);
}
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);
+ }
}