@Override
public QName adaptArgumentValue(final StmtContext<QName, MountPointStatement, MountPointEffectiveStatement> ctx,
final QNameModule targetModule) {
- return ctx.coerceStatementArgument().withModule(targetModule).intern();
+ return ctx.coerceStatementArgument().bindTo(targetModule).intern();
}
@Override
@Override
public abstract String toString();
+ /**
+ * Returns a QName with the specified namespace and the same local name as this one.
+ *
+ * @param namespace New namespace to use
+ * @return a QName with specified QNameModule and same local name as this one
+ * @throws NullPointerException if namespace is null
+ */
+ public QName bindTo(final QNameModule namespace) {
+ return new QName(namespace, getLocalName());
+ }
+
abstract Object writeReplace();
static final String checkLocalName(final @Nullable String localName) {
return sb.append(getLocalName()).toString();
}
+ @Override
+ public @NonNull QName bindTo(final QNameModule namespace) {
+ return module.equals(namespace) ? this : super.bindTo(namespace);
+ }
+
/**
* Returns a QName with the specified QNameModule and the same localname as this one.
*
* @param newModule New QNameModule to use
* @return a QName with specified QNameModule and same local name as this one
+ * @deprecated Use {@link #bindTo(QNameModule)} instead.
*/
+ @Deprecated(forRemoval = true)
public @NonNull QName withModule(final QNameModule newModule) {
- return new QName(newModule, getLocalName());
+ return bindTo(newModule);
}
/**
return namespaceContext.findNamespaceForPrefix(prefix).map(this::bindTo);
}
- private QName bindTo(final QNameModule namespace) {
- return new QName(namespace, getLocalName());
- }
-
@Override
@SuppressFBWarnings(value = "ES_COMPARING_STRINGS_WITH_EQ", justification = "Interning identity check")
public QualifiedQName intern() {
return of(in.readUTF());
}
- public QName bindTo(final QNameModule namespace) {
- return new QName(namespace, getLocalName());
- }
-
@Override
@SuppressFBWarnings(value = "ES_COMPARING_STRINGS_WITH_EQ", justification = "Interning identity check")
public UnqualifiedQName intern() {
*/
public static final String YANG_XPATH_FUNCTIONS_PREFIX = "yang";
- // Dummy template QNames. These are never leaked, but are used for efficient instantiation via QName#withModule()
- private static final QName DUMMY_OPERATION_INPUT = QName.create("DUMMY", "input");
- private static final QName DUMMY_OPERATION_OUTPUT = QName.create("DUMMY", "output");
+ // Dummy template UnqualifiedQName. These are never leaked, but are used for efficient instantiation via
+ // UnqualifiedQName#bindTo()
+ private static final UnqualifiedQName DUMMY_OPERATION_INPUT = UnqualifiedQName.of("input");
+ private static final UnqualifiedQName DUMMY_OPERATION_OUTPUT = UnqualifiedQName.of("output");
private YangConstants() {
// Hidden on purpose
* @throws NullPointerException if {@code module} is null
*/
public static QName operationInputQName(final QNameModule module) {
- return DUMMY_OPERATION_INPUT.withModule(module);
+ return DUMMY_OPERATION_INPUT.bindTo(module);
}
/**
* @throws NullPointerException if {@code module} is null
*/
public static QName operationOutputQName(final QNameModule module) {
- return DUMMY_OPERATION_OUTPUT.withModule(module);
+ return DUMMY_OPERATION_OUTPUT.bindTo(module);
}
}
for (final SchemaNodeIdentifier arg : ctx.coerceStatementArgument()) {
final QName qname = arg.getLastComponent();
if (!targetModule.equals(qname.getModule())) {
- final QName newQname = qname.withModule(targetModule).intern();
+ final QName newQname = qname.bindTo(targetModule).intern();
builder.add(SchemaNodeIdentifier.SAME.createChild(newQname));
replaced = true;
} else {
final QName parentQName = parent.getLastComponent();
checkArgument(parentQName != null, "Path %s has an empty parent", path);
- final QName qname = path.getLastComponent().withModule(parentQName.getModule()).intern();
+ final QName qname = path.getLastComponent().bindTo(parentQName.getModule()).intern();
return parent.createChild(qname);
}
}
\ No newline at end of file
@Override
public QName adaptArgumentValue(final StmtContext<QName, D, E> ctx, final QNameModule targetModule) {
- return ctx.getStatementArgument().withModule(targetModule).intern();
+ return ctx.getStatementArgument().bindTo(targetModule).intern();
}
}