this.prefix = requireNonNull(prefix);
}
+ /**
+ * Create a new qualified unresolved QName.
+ *
+ * @param prefix The prefix on this qualified QName
+ * @param localName The local name of this qualified QName
+ * @return An UnqualifiedQName instance
+ * @throws NullPointerException if any argument is {@code null}
+ * @throws IllegalArgumentException if {@code localName} is not a valid YANG identifier
+ */
+ public static Qualified of(final String prefix, final String localName) {
+ return new Qualified(checkLocalName(prefix), checkLocalName(localName));
+ }
+
/**
* Read an QualifiedQName from a DataInput. The format is expected to match the output format of
* {@link #writeTo(DataOutput)}.
* @throws IOException if I/O error occurs
*/
public static Qualified readFrom(final DataInput in) throws IOException {
- return qualified(in.readUTF(), in.readUTF());
+ return of(in.readUTF(), in.readUTF());
}
@Override
super(localName);
}
+ /**
+ * Create a new unqualified unresolved QName.
+ *
+ * @param localName The local name of this unqualified QName
+ * @return An UnqualifiedQName instance
+ * @throws NullPointerException if localName is {@code null}
+ * @throws IllegalArgumentException if {@code localName} is not a valid YANG identifier
+ */
+ public static Unqualified of(final String localName) {
+ return new Unqualified(checkLocalName(localName));
+ }
+
/**
* Read an UnqualifiedQName from a DataInput. The format is expected to match the output format of
* {@link #writeTo(DataOutput)}.
* @throws IOException if I/O error occurs
*/
public static Unqualified readFrom(final DataInput in) throws IOException {
- return unqualified(in.readUTF());
+ return of(in.readUTF());
}
@Override
}
@Override
- @SuppressFBWarnings(value = "NP_NONNULL_RETURN_VIOLATION", justification = "Non-grok of @Nullable")
public @Nullable String getPrefix() {
return null;
}
* @return An UnqualifiedQName instance
* @throws NullPointerException if any argument is {@code null}
* @throws IllegalArgumentException if {@code localName} is not a valid YANG identifier
+ * @deprecated Use {@link Qualified#of(String, String)} instead.
*/
+ @Deprecated(since = "9.0.0", forRemoval = true)
public static Qualified qualified(final String prefix, final String localName) {
- return new Qualified(checkLocalName(prefix), checkLocalName(localName));
+ return Qualified.of(prefix, localName);
}
/**
* @return An UnqualifiedQName instance
* @throws NullPointerException if localName is {@code null}
* @throws IllegalArgumentException if {@code localName} is not a valid YANG identifier
+ * @deprecated Use {@link Unqualified#of(String)} instead.
*/
+ @Deprecated(since = "9.0.0", forRemoval = true)
public static Unqualified unqualified(final String localName) {
- return new Unqualified(checkLocalName(localName));
+ return Unqualified.of(localName);
}
/**
* @param localName The local name of this unqualified QName
* @return An UnqualifiedQName instance, or null if localName is not valid
*/
- @SuppressFBWarnings(value = "NP_NONNULL_RETURN_VIOLATION", justification = "Non-grok of @Nullable")
public static @Nullable Unqualified tryLocalName(final String localName) {
return isValidLocalName(localName) ? new Unqualified(localName) : null;
}
// Dummy template UnqualifiedQName. These are never leaked, but are used for efficient instantiation via
// UnqualifiedQName#bindTo()
- private static final Unqualified DUMMY_OPERATION_INPUT = UnresolvedQName.unqualified("input");
- private static final Unqualified DUMMY_OPERATION_OUTPUT = UnresolvedQName.unqualified("output");
+ private static final Unqualified DUMMY_OPERATION_INPUT = Unqualified.of("input");
+ private static final Unqualified DUMMY_OPERATION_OUTPUT = Unqualified.of("output");
private YangConstants() {
// Hidden on purpose
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierEffectiveStatement;
import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
-import org.opendaylight.yangtools.yang.common.UnresolvedQName;
import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@Override
public Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
try {
- return UnresolvedQName.unqualified(value).intern();
+ return Unqualified.of(value).intern();
} catch (IllegalArgumentException e) {
throw new SourceException(ctx, e, "Invalid identifier \"%s\"", value);
}
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.common.UnresolvedQName;
import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@Override
public Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
try {
- return UnresolvedQName.unqualified(value);
+ return Unqualified.of(value);
} catch (IllegalArgumentException e) {
throw new SourceException(e.getMessage(), ctx, e);
}
import org.antlr.v4.runtime.tree.TerminalNode;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.UnresolvedQName;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.PathExpression;
import org.opendaylight.yangtools.yang.model.api.PathExpression.DerefSteps;
import org.opendaylight.yangtools.yang.model.api.PathExpression.LocationPathSteps;
final Steps steps;
if (childPath instanceof Path_strContext) {
steps = new LocationPathSteps(parsePathStr(ctx, pathArg, (Path_strContext) childPath));
- } else if (childPath instanceof Deref_exprContext) {
- final Deref_exprContext deref = (Deref_exprContext) childPath;
+ } else if (childPath instanceof Deref_exprContext deref) {
steps = new DerefSteps(parseRelative(ctx, pathArg,
getChild(deref, 0, Deref_function_invocationContext.class).getChild(Relative_pathContext.class, 0)),
parseRelative(ctx, pathArg, getChild(deref, deref.getChildCount() - 1, Relative_pathContext.class)));
private static YangQNameExpr createChildExpr(final StmtContext<?, ?, ?> ctx, final Node_identifierContext qname) {
switch (qname.getChildCount()) {
case 1:
- return YangQNameExpr.of(UnresolvedQName.unqualified(qname.getText()).intern());
+ return YangQNameExpr.of(Unqualified.of(qname.getText()).intern());
case 3:
return YangQNameExpr.of(parseQName(ctx, qname));
default:
final List<YangExpr> predicates) {
switch (qname.getChildCount()) {
case 1:
- return YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified(qname.getText()).intern(), predicates);
+ return YangXPathAxis.CHILD.asStep(Unqualified.of(qname.getText()).intern(), predicates);
case 3:
return YangXPathAxis.CHILD.asStep(parseQName(ctx, qname), predicates);
default:
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.common.UnresolvedQName;
import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
@Override
public Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
try {
- return UnresolvedQName.unqualified(value);
+ return Unqualified.of(value);
} catch (IllegalArgumentException e) {
throw new SourceException(e.getMessage(), ctx, e);
}
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import org.opendaylight.yangtools.yang.common.UnresolvedQName;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.PathExpression;
import org.opendaylight.yangtools.yang.model.api.PathExpression.DerefSteps;
import org.opendaylight.yangtools.yang.model.api.PathExpression.LocationPathSteps;
final DerefSteps derefSteps = (DerefSteps) steps;
assertEquals(YangLocationPath.relative(YangXPathAxis.PARENT.asStep(),
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("type"))), derefSteps.getRelativePath());
+ YangXPathAxis.CHILD.asStep(Unqualified.of("type"))), derefSteps.getRelativePath());
assertEquals(YangLocationPath.relative(YangXPathAxis.PARENT.asStep(),
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("id"))), derefSteps.getDerefArgument());
+ YangXPathAxis.CHILD.asStep(Unqualified.of("id"))), derefSteps.getDerefArgument());
}
@Test
path.getSteps();
assertEquals(ImmutableList.of(
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("device_types")),
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("device_type"),
+ YangXPathAxis.CHILD.asStep(Unqualified.of("device_types")),
+ YangXPathAxis.CHILD.asStep(Unqualified.of("device_type"),
ImmutableSet.of(YangBinaryOperator.EQUALS.exprWith(
- YangQNameExpr.of(UnresolvedQName.unqualified("type")),
+ YangQNameExpr.of(Unqualified.of("type")),
YangPathExpr.of(YangFunctionCallExpr.of(YangFunction.CURRENT.getIdentifier()), Relative.relative(
YangXPathAxis.PARENT.asStep(),
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("type_text"))))))),
- YangXPathAxis.CHILD.asStep(UnresolvedQName.unqualified("desc"))), path.getSteps());
+ YangXPathAxis.CHILD.asStep(Unqualified.of("type_text"))))))),
+ YangXPathAxis.CHILD.asStep(Unqualified.of("desc"))), path.getSteps());
}
}
@Override
QNameStep createStep(final YangXPathAxis axis, final String localName,
final List<YangExpr> predicates) {
- return axis.asStep(UnresolvedQName.unqualified(localName).intern(), predicates);
+ return axis.asStep(UnresolvedQName.Unqualified.of(localName).intern(), predicates);
}
@Override
QNameStep createStep(final YangXPathAxis axis, final String prefix, final String localName,
final List<YangExpr> predicates) {
- return axis.asStep(UnresolvedQName.qualified(prefix, localName).intern(), predicates);
+ return axis.asStep(UnresolvedQName.Qualified.of(prefix, localName).intern(), predicates);
}
@Override
@Override
YangQNameExpr createExpr(final String prefix, final String localName) {
- return YangQNameExpr.of(UnresolvedQName.qualified(prefix, localName));
+ return YangQNameExpr.of(UnresolvedQName.Qualified.of(prefix, localName));
}
@Override
QNameStep createChildStep(final String prefix, final String localName, final Collection<YangExpr> predicates) {
- return YangXPathAxis.CHILD.asStep(UnresolvedQName.qualified(prefix, localName), predicates);
+ return YangXPathAxis.CHILD.asStep(UnresolvedQName.Qualified.of(prefix, localName), predicates);
}
}
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.UnresolvedQName;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Qualified;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
import org.opendaylight.yangtools.yang.xpath.api.YangLiteralExpr;
import org.opendaylight.yangtools.yang.xpath.api.YangQNameExpr;
*/
final class Utils {
private Utils() {
-
+ // Hidden on purpose
}
static Unresolved interpretAsQName(final YangLiteralExpr expr) throws XPathExpressionException {
final UnresolvedQName qname;
try {
- qname = colon != -1 ? UnresolvedQName.qualified(text.substring(0, colon), text.substring(colon + 1))
- : UnresolvedQName.unqualified(text);
+ qname = colon != -1 ? Qualified.of(text.substring(0, colon), text.substring(colon + 1))
+ : Unqualified.of(text);
} catch (IllegalArgumentException e) {
throw wrapException(e, "Cannot interpret %s as a QName", expr);
}
final int colon = text.indexOf(':');
try {
if (colon == -1) {
- return YangQNameExpr.of(UnresolvedQName.unqualified(text).intern());
+ return YangQNameExpr.of(Unqualified.of(text).intern());
}
return YangQNameExpr.of(namespaceContext.createQName(text.substring(0, colon), text.substring(colon + 1)));