From: Robert Varga Date: Tue, 23 Oct 2018 21:49:06 +0000 (+0200) Subject: Migrate XPath-related interfaces to JDT X-Git-Tag: v2.1.3~14 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=0134145998976e154d0e9ce143cb6bc951d3a336;p=yangtools.git Migrate XPath-related interfaces to JDT Rather than using JSR305 annotations, use JDT equivalents. Change-Id: I76025f02f74a326fef1e72b6fb768897b68b33f7 JIRA: YANGTOOLS-907 Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathExpression.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathExpression.java index c372367779..8c3c8d254b 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathExpression.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathExpression.java @@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.api.schema.xpath; import com.google.common.annotations.Beta; import java.util.Optional; -import javax.annotation.Nonnull; import javax.xml.xpath.XPathExpressionException; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -33,7 +33,7 @@ public interface XPathExpression { * @throws XPathExpressionException if the expression cannot be evaluated * @throws IllegalArgumentException if the path does not match the path at which this expression was compiled */ - Optional> evaluate(@Nonnull XPathDocument document, @Nonnull YangInstanceIdentifier path) + Optional> evaluate(@NonNull XPathDocument document, @NonNull YangInstanceIdentifier path) throws XPathExpressionException; /** @@ -42,7 +42,7 @@ public interface XPathExpression { * * @return The evaluation {@link SchemaPath} */ - @Nonnull SchemaPath getEvaluationPath(); + @NonNull SchemaPath getEvaluationPath(); /** * Return the SchemaPath of the topmost node which affects the result of evaluation of this expression. This @@ -54,5 +54,5 @@ public interface XPathExpression { * @return The apex node evaluation of this expression can reference, or {@link SchemaPath#ROOT} if it cannot * cannot be conclusively determined. */ - @Nonnull SchemaPath getApexPath(); + @NonNull SchemaPath getApexPath(); } diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContext.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContext.java index a5c5ea0a3c..0f8541a738 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContext.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContext.java @@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.api.schema.xpath; import com.google.common.annotations.Beta; import com.google.common.base.Converter; -import javax.annotation.Nonnull; import javax.xml.xpath.XPathExpressionException; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -35,8 +35,8 @@ public interface XPathSchemaContext { * @throws XPathExpressionException if the provided expression is invalid, either syntactically or by referencing * namespaces unknown to this schema context. */ - @Nonnull XPathExpression compileExpression(@Nonnull SchemaPath schemaPath, - Converter prefixes, @Nonnull String xpath) throws XPathExpressionException; + @NonNull XPathExpression compileExpression(@NonNull SchemaPath schemaPath, + @NonNull Converter prefixes, @NonNull String xpath) throws XPathExpressionException; /** * Create a new document context. @@ -45,5 +45,5 @@ public interface XPathSchemaContext { * @return A new {@link XPathDocument} on which queries may be executed. * @throws IllegalArgumentException if the document root is not known to this schema context. */ - @Nonnull XPathDocument createDocument(@Nonnull NormalizedNode documentRoot); + @NonNull XPathDocument createDocument(@NonNull NormalizedNode documentRoot); } diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContextFactory.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContextFactory.java index fb0e1e97a1..06669747c5 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContextFactory.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/xpath/XPathSchemaContextFactory.java @@ -7,7 +7,7 @@ */ package org.opendaylight.yangtools.yang.data.api.schema.xpath; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.yang.model.api.SchemaContext; /** @@ -18,6 +18,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; *

* Implementations are required to support {@link java.util.ServiceLoader}. */ +@NonNullByDefault public interface XPathSchemaContextFactory { /** * Create an {@link XPathSchemaContext} based on a {@link SchemaContext}. This effectively binds the namespaces @@ -27,5 +28,5 @@ public interface XPathSchemaContextFactory { * @param context SchemaContext associated with the resulting {@link XPathSchemaContext} * @return An {@link XPathSchemaContext} instance */ - @Nonnull XPathSchemaContext createContext(@Nonnull SchemaContext context); + XPathSchemaContext createContext(SchemaContext context); } diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/ConverterNamespaceContext.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/ConverterNamespaceContext.java index 33c43179fc..959a2b695d 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/ConverterNamespaceContext.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/ConverterNamespaceContext.java @@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.data.jaxen; import static java.util.Objects.requireNonNull; import com.google.common.base.Converter; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNull; import org.jaxen.NamespaceContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; final class ConverterNamespaceContext extends Converter implements NamespaceContext { - private final Converter delegate; + private final @NonNull Converter delegate; ConverterNamespaceContext(final Converter converter) { this.delegate = requireNonNull(converter); @@ -24,13 +24,13 @@ final class ConverterNamespaceContext extends Converter imp @Override @SuppressWarnings("checkstyle:parameterName") - protected QNameModule doForward(@Nonnull final String a) { + protected QNameModule doForward(final String a) { return delegate.convert(a); } @Override @SuppressWarnings("checkstyle:parameterName") - protected String doBackward(@Nonnull final QNameModule b) { + protected String doBackward(final QNameModule b) { return delegate.reverse().convert(b); } @@ -39,7 +39,7 @@ final class ConverterNamespaceContext extends Converter imp return convert(prefix).getNamespace().toString(); } - String jaxenQName(final QName qname) { + @NonNull String jaxenQName(final QName qname) { return reverse().convert(qname.getModule()) + ':' + qname.getLocalName(); } } diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContext.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContext.java index ef8aed5566..9683b48664 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContext.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContext.java @@ -10,8 +10,8 @@ package org.opendaylight.yangtools.yang.data.jaxen; import static java.util.Objects.requireNonNull; import com.google.common.base.Converter; -import javax.annotation.Nonnull; import javax.xml.xpath.XPathExpressionException; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.jaxen.JaxenException; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; +@NonNullByDefault final class JaxenSchemaContext implements XPathSchemaContext { private final DataSchemaContextTree tree; private final SchemaContext context; @@ -31,11 +32,9 @@ final class JaxenSchemaContext implements XPathSchemaContext { this.tree = DataSchemaContextTree.from(context); } - @Nonnull @Override - public XPathExpression compileExpression(@Nonnull final SchemaPath schemaPath, - final Converter prefixes, @Nonnull final String xpath) - throws XPathExpressionException { + public XPathExpression compileExpression(final SchemaPath schemaPath, + final Converter prefixes, final String xpath) throws XPathExpressionException { try { return JaxenXPath.create(prefixes, schemaPath, xpath); } catch (JaxenException e) { @@ -43,9 +42,8 @@ final class JaxenSchemaContext implements XPathSchemaContext { } } - @Nonnull @Override - public XPathDocument createDocument(@Nonnull final NormalizedNode documentRoot) { + public XPathDocument createDocument(final NormalizedNode documentRoot) { return new JaxenDocument(context, tree, documentRoot); } } diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java index 4578585f24..0611ca7ffa 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java @@ -7,17 +7,17 @@ */ package org.opendaylight.yangtools.yang.data.jaxen; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.kohsuke.MetaInfServices; import org.opendaylight.yangtools.yang.data.api.schema.xpath.XPathSchemaContext; import org.opendaylight.yangtools.yang.data.api.schema.xpath.XPathSchemaContextFactory; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @MetaInfServices +@NonNullByDefault public final class JaxenSchemaContextFactory implements XPathSchemaContextFactory { - @Nonnull @Override - public XPathSchemaContext createContext(@Nonnull final SchemaContext context) { + public XPathSchemaContext createContext(final SchemaContext context) { return new JaxenSchemaContext(context); } } diff --git a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenXPath.java b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenXPath.java index 0eb03a1e05..e44d14046c 100644 --- a/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenXPath.java +++ b/yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenXPath.java @@ -16,8 +16,8 @@ import com.google.common.collect.Lists; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.List; import java.util.Optional; -import javax.annotation.Nonnull; import javax.xml.xpath.XPathExpressionException; +import org.eclipse.jdt.annotation.NonNull; import org.jaxen.JaxenException; import org.jaxen.JaxenHandler; import org.jaxen.XPathSyntaxException; @@ -40,21 +40,21 @@ import org.slf4j.LoggerFactory; final class JaxenXPath implements XPathExpression { private static final Logger LOG = LoggerFactory.getLogger(JaxenXPath.class); - private final Converter converter; - private final SchemaPath schemaPath; - private final Expr expr; + private final @NonNull Converter converter; + private final @NonNull SchemaPath schemaPath; + private final @NonNull Expr expr; - private JaxenXPath(final Converter converter, final SchemaPath schemaPath, - final Expr expr) { + private JaxenXPath(final @NonNull Converter converter, final @NonNull SchemaPath schemaPath, + final @NonNull Expr expr) { this.converter = requireNonNull(converter); this.schemaPath = requireNonNull(schemaPath); this.expr = requireNonNull(expr); } - static JaxenXPath create(final Converter converter, final SchemaPath schemaPath, - final String xpath) throws JaxenException { + static @NonNull JaxenXPath create(final @NonNull Converter converter, + final @NonNull SchemaPath schemaPath, final @NonNull String xpath) throws JaxenException { - final Expr parsed; + final @NonNull Expr parsed; try { final XPathReader reader = new org.jaxen.saxpath.base.XPathReader(); final JaxenHandler handler = new JaxenHandler(); @@ -77,8 +77,8 @@ final class JaxenXPath implements XPathExpression { } @Override - public Optional> evaluate(@Nonnull final XPathDocument document, - @Nonnull final YangInstanceIdentifier path) throws XPathExpressionException { + public Optional> evaluate(final XPathDocument document, + final YangInstanceIdentifier path) throws XPathExpressionException { checkArgument(document instanceof JaxenDocument); final NormalizedNodeContextSupport contextSupport = NormalizedNodeContextSupport.create( @@ -126,13 +126,11 @@ final class JaxenXPath implements XPathExpression { return result; } - @Nonnull @Override public SchemaPath getEvaluationPath() { return schemaPath; } - @Nonnull @Override public SchemaPath getApexPath() { // TODO: improve this