@Override
public Either<Decimal64, CanonicalValueViolation> fromString(final String str) {
- // https://tools.ietf.org/html/rfc6020#section-9.3.1
+ // https://www.rfc-editor.org/rfc/rfc6020#section-9.3.1
//
// A decimal64 value is lexically represented as an optional sign ("+"
// or "-"), followed by a sequence of decimal digits, optionally
@Override
public final String toCanonicalString() {
- // https://tools.ietf.org/html/rfc6020#section-9.3.2
+ // https://www.rfc-editor.org/rfc/rfc6020#section-9.3.2
//
// The canonical form of a positive decimal64 does not include the sign
// "+". The decimal point is required. Leading and trailing zeros are
/**
* Enumeration of {@code error-severity} values, as defined by
- * <a href="https://datatracker.ietf.org/doc/html/rfc4741#section-4.3">RFC4741, section 4.3</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc4741#section-4.3">RFC4741, section 4.3</a>.
*/
@NonNullByDefault
public enum ErrorSeverity {
/**
* Extensible enumeration of {@code error-tag} values, as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6241#appendix-A">RFC6241</a>. These values are an extensible
- * enumeration, since YANG does not place restriction on possible values in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8040#section-3.9">RFC8040</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241#appendix-A">RFC6241</a>. These values are an extensible enumeration,
+ * since YANG does not place restriction on possible values in
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-3.9">RFC8040</a>.
*
* <p>
* Error tag defines overall error semantics. Additional tag-specific information may be associated with a particular
public static final ErrorTag LOCK_DENIED = new ErrorTag("lock-denied");
/**
* {@code unknown-element} {@link ErrorTag}. Covers mechanics specified in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6241#page-80">RFC6241, Appendix A, last item</a>. Note the
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241#page-80">RFC6241, Appendix A, last item</a>. Note the
* specification expressly forbids reporting this tag for NETCONF clients older than {@code :base:1.1}.
*/
public static final ErrorTag MALFORMED_MESSAGE = new ErrorTag("malformed-message");
/**
* Enumeration of {@code error-type} values. These provide glue between {@link NetconfLayer} and various sources of
* such errors. This enumeration is not extensible in YANG as it is modeled in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8040#section-3.9">RFC8040</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-3.9">RFC8040</a>.
*/
@NonNullByDefault
public enum ErrorType {
/**
* Enumeration of NETCONF layers, as established in
- * <a href="https://datatracker.ietf.org/doc/html/rfc4741#section-1.1">NETCONF</a>. This enumeration exists because
- * its semantics are implied by RFC6020 references to {@code error-tag} and its XML encoding.
+ * <a href="https://www.rfc-editor.org/rfc/rfc4741#section-1.1">NETCONF</a>. This enumeration exists because its
+ * semantics are implied by RFC6020 references to {@code error-tag} and its XML encoding.
*
* <p>
* This enumeration corresponds to the {@code Layer} in:
* | Protocol | | |
* +-------------+ +-----------------------------+
* </code></pre>
- * as acknowledged in <a href="https://datatracker.ietf.org/doc/html/rfc6241#section-1.2">RFC6241</a>:
+ * as acknowledged in <a href="https://www.rfc-editor.org/rfc/rfc6241#section-1.2">RFC6241</a>:
* <pre>
* The YANG data modeling language [RFC6020] has been developed for
* specifying NETCONF data models and protocol operations, covering the
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Item ordering, as specified by <a href="https://tools.ietf.org/html/rfc7950#section-7.7.1">RFC7950 section 7.7.1</a>.
+ * Item ordering, as specified by
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.7.1">RFC7950 section 7.7.1</a>.
*/
@NonNullByDefault
public enum Ordering {
* @throws IllegalArgumentException if the argument string is not a valid Ordering
*/
public static Ordering forArgument(final String argumentString) {
- switch (argumentString) {
- case "system":
- return SYSTEM;
- case "user":
- return USER;
- default:
- throw new IllegalArgumentException("Invalid ordering string '" + argumentString + "'");
- }
+ return switch (argumentString) {
+ case "system" -> SYSTEM;
+ case "user" -> USER;
+ default -> throw new IllegalArgumentException("Invalid ordering string '" + argumentString + "'");
+ };
}
}
\ No newline at end of file
* name, but from different schemas.
*
* <p>
- * The local name must conform to <a href="https://tools.ietf.org/html/rfc7950#section-6.2">RFC7950 Section 6.2</a>.
+ * The local name must conform to <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.2">RFC7950 Section 6.2</a>.
*
* <ul>
* <li><b>XMLNamespace</b> - {@link #getNamespace()} - the namespace assigned to the YANG module which
private Revision(final @NonNull String str) {
/*
- * According to RFC7950 (https://tools.ietf.org/html/rfc7950#section-7.1.9):
+ * According to RFC7950 (https://www.rfc-editor.org/rfc/rfc7950#section-7.1.9):
*
* The "revision" statement specifies the editorial revision history of
* the module, including the initial revision. A series of "revision"
*
* <p>
* The following outlines suggested values as defined by
- * (<a href="https://tools.ietf.org/html/rfc6241#page-89">RFC6241</a>):
+ * (<a href="https://www.rfc-editor.org/rfc/rfc6241#page-89">RFC6241</a>):
*
* <pre>
* access-denied
/**
* A simple type capture of {@code namespace} statement's argument according to
- * <a href="https://tools.ietf.org/html/rfc6020#section-7.1.3">RFC6020</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.1.3">RFC6020</a>.
*/
public final class XMLNamespace implements Comparable<XMLNamespace>, Immutable, Serializable {
private static final Interner<XMLNamespace> INTERNER = Interners.newWeakInterner();
@NonNullByDefault
public final class YangConstants {
/**
- * YANG File Extension, as defined in <a href="https://tools.ietf.org/html/rfc6020#section-14.1">RFC6020</a>.
+ * YANG File Extension, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.1">RFC6020</a>.
*/
public static final String RFC6020_YANG_FILE_EXTENSION = ".yang";
/**
- * YANG Media Type, as defined in <a href="https://tools.ietf.org/html/rfc6020#section-14.1">RFC6020</a>.
+ * YANG Media Type, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.1">RFC6020</a>.
*/
public static final String RFC6020_YANG_MAC_FILE_TYPE = "TEXT";
/**
- * YANG Media Type, as defined in h<a href="https://tools.ietf.org/html/rfc6020#section-14.1">RFC6020</a>.
+ * YANG Media Type, as defined in h<a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.1">RFC6020</a>.
*/
public static final String RFC6020_YANG_MEDIA_TYPE = "application/yang";
/**
- * YANG namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in String format.
+ * YANG namespace, as defined in https://www.rfc-editor.org/rfc/rfc6020#section-14, in String format.
*/
public static final String RFC6020_YANG_NAMESPACE_STRING = "urn:ietf:params:xml:ns:yang:1";
/**
- * YANG namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format.
+ * YANG namespace, as defined in https://www.rfc-editor.org/rfc/rfc6020#section-14, in URI format.
*/
public static final XMLNamespace RFC6020_YANG_NAMESPACE = XMLNamespace.of(RFC6020_YANG_NAMESPACE_STRING).intern();
/**
*/
public static final QNameModule RFC6020_YANG_MODULE = QNameModule.create(RFC6020_YANG_NAMESPACE).intern();
/**
- * YIN File Extension, as defined in <a href="https://tools.ietf.org/html/rfc6020#section-14.2">RFC6020</a>.
+ * YIN File Extension, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.2">RFC6020</a>.
*/
public static final String RFC6020_YIN_FILE_EXTENSION = ".yin";
/**
- * YANG Media Type, as defined in <a href="https://tools.ietf.org/html/rfc6020#section-14.1">RFC6020</a>.
+ * YANG Media Type, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.1">RFC6020</a>.
*/
public static final String RFC6020_MAC_FILE_TYPE = "TEXT";
/**
- * YANG Media Type, as defined in <a href="https://tools.ietf.org/html/rfc6020#section-14.2">RFC6020</a>.
+ * YANG Media Type, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-14.2">RFC6020</a>.
*/
public static final String RFC6020_YIN_MEDIA_TYPE = "application/yin+xml";
/**
- * YIN namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in String format.
+ * YIN namespace, as defined in https://www.rfc-editor.org/rfc/rfc6020#section-14, in String format.
*/
public static final String RFC6020_YIN_NAMESPACE_STRING = "urn:ietf:params:xml:ns:yang:yin:1";
/**
- * YIN namespace, as defined in https://tools.ietf.org/html/rfc6020#section-14, in URI format.
+ * YIN namespace, as defined in https://www.rfc-editor.org/rfc/rfc6020#section-14, in URI format.
*/
public static final XMLNamespace RFC6020_YIN_NAMESPACE = XMLNamespace.of(RFC6020_YIN_NAMESPACE_STRING).intern();
/**
public static final String YANG_XPATH_FUNCTIONS_PREFIX = "yang";
/**
* NETCONF protocol elements' namespace, as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc4741#section-3.1">RFC4741 section 3.1</a>, in String format.
+ * <a href="https://www.rfc-editor.org/rfc/rfc4741#section-3.1">RFC4741 section 3.1</a>, in String format.
*/
public static final String NETCONF_NAMESPACE_STRING = "urn:ietf:params:xml:ns:netconf:base:1.0";
/**
* NETCONF protocol elements' namespace, as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc4741#section-3.1">RFC4741 section 3.1</a>, in String format.
+ * <a href="https://www.rfc-editor.org/rfc/rfc4741#section-3.1">RFC4741 section 3.1</a>, in String format.
*/
public static final XMLNamespace NETCONF_NAMESPACE = XMLNamespace.of(NETCONF_NAMESPACE_STRING).intern();
/**
* NETCONF namespace bound to YANG through
- * <a href="https://datatracker.ietf.org/doc/html/rfc6241#section-10.3">ietf-netconf@2011-06-01.yang</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241#section-10.3">ietf-netconf@2011-06-01.yang</a>.
*/
public static final QNameModule RFC6241_YANG_MODULE =
QNameModule.create(NETCONF_NAMESPACE, Revision.of("2011-06-01")).intern();
public static final QName OK_ELEMENT_QNAME = QName.create(RFC6241_YANG_MODULE, "ok-element").intern();
/**
* {@code missing-choice} as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6020#section-13.7">RFC6020, section 13.7</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-13.7">RFC6020, section 13.7</a>.
*/
public static final QName MISSING_CHOICE_QNAME = QName.create(RFC6020_YANG_MODULE, "missing-choice").intern();
/**
* {@code non-unique} as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6020#section-13.1">RFC6020, section 13.1</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-13.1">RFC6020, section 13.1</a>.
*/
public static final QName NON_UNIQUE_QNAME = QName.create(RFC6020_YANG_MODULE, "non-unique").intern();
/**
QNameModule.create(YANG_LIBRARY_NAMESPACE, Revision.of("2016-06-21")).intern();
/**
* {@code ietf-yang-library} namespace bound to YANG through
- * <a href="https://datatracker.ietf.org/doc/html/rfc8525#section-4">ietf-yang-library@2019-01-04.yang</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8525#section-4">ietf-yang-library@2019-01-04.yang</a>.
*/
public static final QNameModule RFC8525_YANG_MODULE =
QNameModule.create(YANG_LIBRARY_NAMESPACE, Revision.of("2019-01-04")).intern();
}
/**
- * Parse a file name according to rules outlined in https://tools.ietf.org/html/rfc6020#section-5.2. Input string
+ * Parse a file name according to rules outlined in https://www.rfc-editor.org/rfc/rfc6020#section-5.2. Input string
* should be the base path with file extension stripped.
*
* @param baseName file base name
/**
* Interface for mapping between {@link String} prefixes and {@link QNameModule} namespaces. The conceptual model
* matches prefix mapping inside a YANG {@code module} as defined through the use of {@code prefix} and {@code import}
- * statements and detailed in <a href="https://tools.ietf.org/html/rfc7950#section-7.1.4">RFC7950 Section 7.1.4</a>.
+ * statements and detailed in <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.1.4">RFC7950 Section 7.1.4</a>.
*
* <p>
* Each namespace context has a set of prefix/namespace mappings. A namespace can be bound to multiple prefixes at the
/**
* An element of {@code error-info} container, as modeled in {@code errorInfoType} of
- * <a href="https://datatracker.ietf.org/doc/html/rfc6241#appendix-B">RFC6241, Appendix B</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241#appendix-B">RFC6241, Appendix B</a>.
*/
@Beta
@NonNullByDefault
* <li>{@link NodeWithValue} - Identifier of instance {@code leaf} node or {@code leaf-list} node</li>
* </ul>
*
- * @see <a href="http://tools.ietf.org/html/rfc6020#section-9.13">RFC6020</a>
+ * @see <a href="http://www.rfc-editor.org/rfc/rfc6020#section-9.13">RFC6020</a>
*/
public abstract sealed class YangInstanceIdentifier implements HierarchicalIdentifier<YangInstanceIdentifier>
permits FixedYangInstanceIdentifier, StackedYangInstanceIdentifier {
/**
* Dedicated exception for reporting conditions where {@code error-tag} should be reported as {@code invalid-value}.
- * This is covered by <a href="https://tools.ietf.org/html/rfc7950#section-8.3.1">RFC7950 section 8.3.1</a>:
+ * This is covered by <a href="https://www.rfc-editor.org/rfc/rfc7950#section-8.3.1">RFC7950 section 8.3.1</a>:
* <pre>
* If a leaf data value does not match the type constraints for the
* leaf, including those defined in the type's "range", "length", and
* </pre>
*
* <p>
- * This error tag also references <a href="https://tools.ietf.org/html/rfc6241#appendix-A">RFC6241 Appendix A</a>,
+ * This error tag also references <a href="https://www.rfc-editor.org/rfc/rfc6241#appendix-A">RFC6241 Appendix A</a>,
* which defines the appropriate severity and adds more semantics.
*/
@Beta
@Override
public final byte[] deserializeImpl(final String product) {
- // https://tools.ietf.org/html/rfc4648#section-4 plus lenient to allow for MIME blocks
+ // https://www.rfc-editor.org/rfc/rfc4648#section-4 plus lenient to allow for MIME blocks
final byte[] ret = Base64.getMimeDecoder().decode(product);
validate(ret);
return ret;
/**
* {@code non-unique} as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6020#section-13.1">RFC6020, section 13.1</a>. Note this
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-13.1">RFC6020, section 13.1</a>. Note this
* is only a prototype, which needs to be bound to a path representation type.
*/
public static YangErrorInfo nonUnique(final YangInstanceIdentifier leafPath) {
/**
* {@code missing-choice} as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc6020#section-13.7">RFC6020, section 13.7</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-13.7">RFC6020, section 13.7</a>.
*/
public static YangErrorInfo missingChoice(final NodeIdentifier choiceName) {
return of(MISSING_CHOICE_NODEID, choiceName);
/**
* {@link DataTree} type, specifying which YANG modeled content is valid with a data tree. This reflects
- * <a href="https://tools.ietf.org/html/rfc6020#section-7.21.1">RFC6020</a>/
- * <a href="https://tools.ietf.org/html/rfc6020#section-7.19.1">RFC7950</a> data combinations based on {@code config}
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.21.1">RFC6020</a>/
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.19.1">RFC7950</a> data combinations based on {@code config}
* statement.
*/
// FIXME: 7.0.0: Consider defining a 'config false'-only type
/**
* Only {@code config true} nodes are allowed. This corresponds, but is not limited, to @{code candidate},
* {@code startup} and {@code running} data stores defined in
- * <a href="https://tools.ietf.org/html/rfc8342#section-4.1">RFC8342 section 4.1</a> as well as {@code intended}
- * data store defined in <a href="https://tools.ietf.org/html/rfc8342#section-5">RFC8342 section 4.1</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8342#section-4.1">RFC8342 section 4.1</a> as well as {@code intended}
+ * data store defined in <a href="https://www.rfc-editor.org/rfc/rfc8342#section-5">RFC8342 section 4.1</a>.
*/
CONFIGURATION,
/**
* Only {@code config true} and {@code config false} nodes are allowed. This corresponds, but is not limited, to
* {@code operational state} defined in
- * <a href="https://tools.ietf.org/html/rfc8342#section-4.1">RFC8342 section 4.1</a> as well as {@code operational}
- * data store defined in <a href="https://tools.ietf.org/html/rfc8342#section-5">RFC8342 section 4.1</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8342#section-4.1">RFC8342 section 4.1</a> as well as {@code operational}
+ * data store defined in <a href="https://www.rfc-editor.org/rfc/rfc8342#section-5">RFC8342 section 4.1</a>.
*/
OPERATIONAL,
}
/**
* Effective statement representation of 'get-filter-element-attributes' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241">RFC6241</a>.
*/
@Beta
public interface GetFilterElementAttributesEffectiveStatement
/**
* Represents the effect of 'get-filter-element-attributes' extension, as defined in
- * <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241">RFC6241</a>.
*/
@Beta
public interface GetFilterElementAttributesSchemaNode extends UnknownSchemaNode {
/**
* Declared statement representation of 'get-filter-element-attributes' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241">RFC6241</a>.
*/
@Beta
public interface GetFilterElementAttributesStatement extends UnknownStatement<Empty> {
*/
/**
* YANG metamodel extensions to support NETCONF, filters as defined in
- * <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6241">RFC6241</a>.
*
* @author Robert Varga
*/
/**
* Effective statement representation of 'default-deny-all' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
*/
@Beta
public interface DefaultDenyAllEffectiveStatement extends UnknownEffectiveStatement<Empty, DefaultDenyAllStatement> {
/**
* Represents the effect of 'default-deny-all' extension, as defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>, being attached to a SchemaNode.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>, being attached to a SchemaNode.
*/
@Beta
public interface DefaultDenyAllSchemaNode extends UnknownSchemaNode {
/**
* Declared statement representation of 'default-deny-all' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
*/
@Beta
public interface DefaultDenyAllStatement extends UnknownStatement<Empty> {
/**
* Effective statement representation of 'default-deny-write' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
*/
@Beta
public interface DefaultDenyWriteEffectiveStatement
/**
* Represents the effect of 'default-deny-write' extension, as defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>, being attached to a SchemaNode.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>, being attached to a SchemaNode.
*/
@Beta
public interface DefaultDenyWriteSchemaNode extends UnknownSchemaNode {
/**
* Declared statement representation of 'default-deny-write' extension defined in
- * <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
*/
@Beta
public interface DefaultDenyWriteStatement extends UnknownStatement<Empty> {
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG metamodel extensions to support NACM, as defined in <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * YANG metamodel extensions to support NACM, as defined in <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
*
* @author Robert Varga
*/
/**
* Maximum allowed access, as defined by
- * <a href="https://tools.ietf.org/html/rfc2578#section-7.3">RFC2578 Section 7.3</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc2578#section-7.3">RFC2578 Section 7.3</a>.
*/
@Beta
public enum MaxAccess {
/**
* Indicates the annotated object is an auxiliary object, as per
- * <a href="https://tools.ietf.org/html/rfc2578#section-7.7">RFC2578 Section 7.7</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc2578#section-7.7">RFC2578 Section 7.7</a>.
*/
NOT_ACCESSIBLE("not-accessible"),
/**
/**
* Effective statement representation of 'annotation' extension defined in
- * <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7952">RFC7952</a>.
*/
@Beta
public interface AnnotationEffectiveStatement extends UnknownEffectiveStatement<QName, AnnotationStatement>,
/**
* Represents the effect of 'annotation' extension, as defined in
- * <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>, being attached to a SchemaNode.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7952">RFC7952</a>, being attached to a SchemaNode.
*/
@Beta
public interface AnnotationSchemaNode extends UnknownSchemaNode, TypeAware {
/**
* Declared statement representation of 'annotation' extension defined in
- * <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7952">RFC7952</a>.
*/
@Beta
public interface AnnotationStatement extends UnknownStatement<QName>, WithStatus<QName>,
*/
/**
* YANG metamodel extensions to support metadata, as defined in
- * <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>. For SchemaNode world entry space is defined via
+ * <a href="https://www.rfc-editor.org/rfc/rfc7952">RFC7952</a>. For SchemaNode world entry space is defined via
* {@link org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode}'s static methods.
*
* @author Robert Varga
/**
* Effective statement representation of 'yang-data' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC 8040</a>.
*/
public interface YangDataEffectiveStatement extends UnknownEffectiveStatement<YangDataName, YangDataStatement>,
DataTreeAwareEffectiveStatement<YangDataName, YangDataStatement> {
/**
* Represents 'yang-data' extension statement defined in
- * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC8040</a>. This statement must appear as a top-level
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC8040</a>. This statement must appear as a top-level
* statement, otherwise it is ignored and does not appear in the final schema context.
*/
@Beta
/**
* Declared statement representation of 'yang-data' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC 8040</a>.
*/
public interface YangDataStatement extends UnknownStatement<YangDataName> {
@Override
/**
* Effective statement representation of 'mount-point' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8528">RFC8528</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8528">RFC8528</a>.
*/
@Beta
public interface MountPointEffectiveStatement extends UnknownEffectiveStatement<MountPointLabel, MountPointStatement> {
/**
* Represents the effect of 'mount-point' extension, as defined in
- * <a href="https://tools.ietf.org/html/rfc8528">RFC8528</a>, being attached to a SchemaNode.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8528">RFC8528</a>, being attached to a SchemaNode.
*/
@Beta
public interface MountPointSchemaNode extends UnknownSchemaNode {
/**
* Declared statement representation of 'mount-point' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8528">RFC8528</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8528">RFC8528</a>.
*/
@Beta
public interface MountPointStatement extends UnknownStatement<MountPointLabel>, WithStatus<MountPointLabel>,
*/
/**
* YANG metamodel extensions to support mount-poing, as defined in
- * <a href="https://tools.ietf.org/html/rfc8528">RFC8528</a>. For SchemaNode world entry space is defined via
+ * <a href="https://www.rfc-editor.org/rfc/rfc8528">RFC8528</a>. For SchemaNode world entry space is defined via
* {@link org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode}'s static methods.
*
* @author Robert Varga
/**
* IETF YANG Module Tags Registry, as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8819#section-7.2">RFC8819</a> section 7.2, table 2.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8819#section-7.2">RFC8819</a> section 7.2, table 2.
*
* <p>
- * This registry allocates tags that have the registered prefix "ietf:".
- * New values should be well considered and not achievable through a
- * combination of already existing IETF tags. IANA assigned tags must
- * conform to Net-Unicode as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc5198">RFC5198</a>, and they shall not
- * need normalization.
+ * This registry allocates tags that have the registered prefix "ietf:". New values should be well considered and not
+ * achievable through a combination of already existing IETF tags. IANA assigned tags must conform to Net-Unicode as
+ * defined in <a href="https://www.rfc-editor.org/rfc/rfc5198">RFC5198</a>, and they shall not need normalization.
*/
@NonNullByDefault
public final class IetfTags {
/**
* {@code ietf:network-element-class} {@link IetfTags}.
* <pre>
- * Network element as defined in <a href="https://datatracker.ietf.org/doc/html/rfc8199">RFC8199</a>.
+ * Network element as defined in <a href="https://www.rfc-editor.org/rfc/rfc8199">RFC8199</a>.
* </pre>
*/
public static final Tag NETWORK_ELEMENT_CLASS = new Tag("ietf:network-element-class").intern();
/**
* {@code ietf:network-service-class} {@link IetfTags}
* <pre>
- * Network element as defined in <a href="https://datatracker.ietf.org/doc/html/rfc8199">RFC8199</a>.
+ * Network element as defined in <a href="https://www.rfc-editor.org/rfc/rfc8199">RFC8199</a>.
* </pre>
*/
public static final Tag NETWORK_SERVICE_CLASS = new Tag("ietf:network-service-class").intern();
/**
* Effective statement representation of 'module-tag' extension defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8819">RFC8819</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8819">RFC8819</a>.
*/
@Beta
public interface ModuleTagEffectiveStatement extends UnknownEffectiveStatement<Tag, ModuleTagStatement> {
/**
* Declared statement representation of 'module-tag' extension defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8819">RFC8819</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8819">RFC8819</a>.
*/
@Beta
public interface ModuleTagStatement extends UnknownStatement<Tag> {
/**
* YANG Module Tag Prefixes Registry, as defined in
- * <a href="https://datatracker.ietf.org/doc/html/rfc8819#section-7.1">RFC8819</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8819#section-7.1">RFC8819</a>.
*
* <p>
* This registry allocates tag prefixes. All YANG module tags SHOULD
*
* <p>
* This interface was modeled according to definition in
- * <a href="https://tools.ietf.org/html/rfc6020#section-7.10">[RFC-6020] The anyxml Statement</a>
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.10">[RFC-6020] The anyxml Statement</a>
*/
public interface AnyxmlSchemaNode extends DataSchemaNode, MandatoryAware, MustConstraintAware,
EffectiveStatementEquivalent<AnyxmlEffectiveStatement> {
* Keyword. If no argument statement is present the method will return
* <code>null</code> <br>
* The argument statement is defined in <a
- * href="https://tools.ietf.org/html/rfc6020#section-7.17.2">[RFC-6020] The
+ * href="https://www.rfc-editor.org/rfc/rfc6020#section-7.17.2">[RFC-6020] The
* argument Statement</a>
*
* @return the <code>String</code> that is the name of argument to the
*
* <p>
* For more specific definition please look into <a
- * href="https://tools.ietf.org/html/rfc6020#section-7.17.2.2">[RFC-6020]
+ * href="https://www.rfc-editor.org/rfc/rfc6020#section-7.17.2.2">[RFC-6020]
* The yin-element Statement</a>
*
* @return <code>true</code> if the argument is mapped to an XML element in
/**
* Return the default value of this leaf-list, as per the rules outlined in
- * <a href="https://tools.ietf.org/html/rfc7950#section-7.7.4">Section 7.4.4 of RFC7950</a>. RFC6020 does not
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.7.4">Section 7.4.4 of RFC7950</a>. RFC6020 does not
* allow for default value of leaf-list, hence the returned list will be empty.
*
* @return Ordered list of Strings which specify the default values of this leaf-list
/**
* Return whether this node is mandatory or not. Note this reflects the declared model, as defined by 'mandatory'
* statement, not the effective model. This notably means this attribute does not mirror the definition of
- * {@code mandatory node} as per <a href="https://tools.ietf.org/html/rfc7950#page-14">RFC7950 Terminology</a>.
+ * {@code mandatory node} as per <a href="https://www.rfc-editor.org/rfc/rfc7950#page-14">RFC7950 Terminology</a>.
*
* @return True if this node is marked as mandatory.
*/
import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression;
/**
- * An expression as defined in <a href="https://tools.ietf.org/html/rfc7950#section-9.9.2">RFC7950 Section 9.9.2</a>,
+ * An expression as defined in <a href="https://www.rfc-editor.org/rfc/rfc7950#section-9.9.2">RFC7950 Section 9.9.2</a>,
* i.e. the argument of a {@code path} statement.
*
* <p>
/**
* An {@link EffectiveStatementInference} consisting purely of steps along the {@code schema tree} axis, so that it
* represents a {@code schema tree node} based on resolution of {@code absolute-schema-nodeid} as specified by
- * <a href="https://tools.ietf.org/html/rfc7950#section-6.5">RFC7950 section 6.5</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.5">RFC7950 section 6.5</a>.
*/
public interface SchemaTreeInference extends EffectiveStatementInference {
/**
* keyword, followed by zero or one argument </blockquote>
*
* <p>
- * Source: <a href="https://tools.ietf.org/html/rfc6020#section-6.3"> </a>
+ * Source: <a href="https://www.rfc-editor.org/rfc/rfc6020#section-6.3"> </a>
*/
public interface StatementDefinition extends Immutable {
/**
*
* <h2>Statements</h2>
* YANG source is defined as sequence of statement in
- * <a href="https://tools.ietf.org/html/rfc6020#section-6.3">RFC6020, Section 6.3</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-6.3">RFC6020, Section 6.3</a>.
* this model is also correct for YIN, which is XML serialisation of YANG source.
*
* <p>
/**
* {@link EffectiveStatement} representation of a {@code augment} statement as defined by
- * <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-7.17">RFC7950</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.17">RFC7950</a>.
*/
public interface AugmentEffectiveStatement
extends SchemaTreeAwareEffectiveStatement<SchemaNodeIdentifier, AugmentStatement> {
* and anydata.
*
* <p>
- * Defined in <a href="https://tools.ietf.org/html/rfc6020#section-3">RFC6020, Section 3</a>, as {@code data-def-stmt}
+ * Defined in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-3">RFC6020, Section 3</a>, as {@code data-def-stmt}
* ABNF rule.
*/
public interface DataDefinitionStatement
/**
* {@link EffectiveStatement} representation of a {@code leaf-list} statement as defined by
- * <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-7.7">RFC7950</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.7">RFC7950</a>.
*/
public interface LeafListEffectiveStatement extends DataTreeEffectiveStatement<LeafListStatement>,
OrderedByAwareEffectiveStatement<QName, LeafListStatement> {
/**
* {@link EffectiveStatement} representation of a {@code list} statement as defined by
- * <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-7.8">RFC7950</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.8">RFC7950</a>.
*/
public interface ListEffectiveStatement extends DataTreeEffectiveStatement<ListStatement>,
DataTreeAwareEffectiveStatement<QName, ListStatement>, TypedefAwareEffectiveStatement<QName, ListStatement>,
TypedefAwareEffectiveStatement<Unqualified, ModuleStatement>,
SchemaTreeRoot {
/**
- * Conformance type, as defined by <a href="https://datatracker.ietf.org/doc/html/rfc7895#page-9">RFC7895</a> and
- * indirectly referenced in <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-5.6.4">RFC7950</a>. The
- * NMDA revision of <a href="https://datatracker.ietf.org/doc/html/rfc8525">YANG Library</a> does not directly
- * define these, but makes a distiction on the same concept.
+ * Conformance type, as defined by <a href="https://www.rfc-editor.org/rfc/rfc7895#page-9">RFC7895</a> and
+ * indirectly referenced in <a href="https://www.rfc-editor.org/rfc/rfc7950#section-5.6.4">RFC7950</a>. The NMDA
+ * revision of <a href="https://www.rfc-editor.org/rfc/rfc8525">YANG Library</a> does not directly define these, but
+ * makes a distiction on the same concept.
*/
enum ConformanceType {
/**
/**
* Represents unique path to every schema node inside the schema node identifier namespace. This concept is defined
- * in <a href="https://tools.ietf.org/html/rfc7950#section-6.5">RFC7950</a>.
+ * in <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.5">RFC7950</a>.
*/
public abstract sealed class SchemaNodeIdentifier implements Immutable {
/**
/**
* The binary built-in type represents any binary data, i.e., a sequence of octets. Binary values are encoded with the
- * Base64 encoding scheme (see <a href="https://tools.ietf.org/html/rfc4648#section-4">[RFC4648], Section 4</a>).<br>
+ * Base64 encoding scheme (see <a href="https://www.rfc-editor.org/rfc/rfc4648#section-4">[RFC4648], Section 4</a>).<br>
* The canonical form of a binary value follows the rules defined in
- * <a href="https://tools.ietf.org/html/rfc4648">[RFC4648]</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc4648">[RFC4648]</a>.
*
* <p>
* This interface was modeled according to definition in
- * <a href="https://tools.ietf.org/html/rfc6020#section-9.8">[RFC-6020] The binary Built-In Type</a>
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-9.8">[RFC-6020] The binary Built-In Type</a>
*/
public interface BinaryTypeDefinition extends LengthRestrictedTypeDefinition<BinaryTypeDefinition> {
static String toString(final @NonNull BinaryTypeDefinition type) {
/**
* A single value length restriction, as expressed by a length statement, as specified by
- * <a href="https://tools.ietf.org/html/rfc6020#section-9.4.4">[RFC-6020] The length Statement</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-9.4.4">[RFC-6020] The length Statement</a>.
*/
public interface LengthConstraint extends ConstraintMetaDefinition {
/**
/**
* A single value range restriction, as expressed by a range statement, as specified by
- * <a href="https://tools.ietf.org/html/rfc6020#section-9.2.4">[RFC-6020] The range Statement</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-9.2.4">[RFC-6020] The range Statement</a>.
*/
public interface RangeConstraint<T extends Number & Comparable<T>> extends ConstraintMetaDefinition {
/**
*/
@NonNullByDefault({ PARAMETER, RETURN_TYPE })
final class YangTextSnippetIterator extends AbstractIterator<@NonNull String> {
- // https://tools.ietf.org/html/rfc7950#section-6.1.3
+ // https://www.rfc-editor.org/rfc/rfc7950#section-6.1.3
// An unquoted string is any sequence of characters that does not
// contain any space, tab, carriage return, or line feed characters, a
// single or double quote character, a semicolon (";"), braces ("{" or
YangStmtMapping.REFERENCE);
/*
- * https://tools.ietf.org/html/rfc6087#section-4.3:
+ * https://www.rfc-editor.org/rfc/rfc6087#section-4.3:
* In general, it is suggested that substatements containing very common
* default values SHOULD NOT be present. The following substatements
* are commonly used with the default value, which would make the module
@Override
public Optional<String> getReference() {
- return Optional.of("https://tools.ietf.org/html/rfc6020#section-9.3.4");
+ return Optional.of("https://www.rfc-editor.org/rfc/rfc6020#section-9.3.4");
}
@Override
|| baseType instanceof AbstractRestrictedType,
"Derived type can be built only from a base, derived, or restricted type, not %s", baseType);
- // http://tools.ietf.org/html/rfc6020#section-7.3.4
+ // http://www.rfc-editor.org/rfc/rfc6020#section-7.3.4
defaultValue = baseType.getDefaultValue().orElse(null);
// In similar vein, it makes sense to propagate units
/**
* Length constraint imposed on YANG string type by our implementation. {@link String#length()} is an integer,
* capping our ability to support strings up to 18446744073709551615 as defined in
- * http://tools.ietf.org/html/rfc6020#section-9.4.4.
+ * http://www.rfc-editor.org/rfc/rfc6020#section-9.4.4.
*
* FIXME: We could bump this number up to allow such models, but that could lead to unexpected run-time errors.
* In order to do that, the parser would need another pass on the effective statements, which would cap
/**
* Utility {@link YangNamespaceContext} backed by a SchemaContext, resolving namespaces to their module names. This
* is useful for implementing namespace resolution according to
- * <a href="https://tools.ietf.org/html/rfc7951#section-4">RFC7951 Section 4</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7951#section-4">RFC7951 Section 4</a>.
*
* <p>
* When multiple revisions of a particular namespace are present in the backing SchemaContext, this ambiguity is
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG parser support for metamodel extensions defined in <a href="https://tools.ietf.org/html/rfc6241">RFC6241</a>.
+ * YANG parser support for metamodel extensions defined in <a href="https://www.rfc-editor.org/rfc/rfc6241">RFC6241</a>.
* Add {@link org.opendaylight.yangtools.rfc6241.parser.GetFilterElementAttributesStatementSupport} to your reactor to
* add support for this extension.
*
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG parser support for metamodel extensions defined in <a href="https://tools.ietf.org/html/rfc6536">RFC6536</a>.
+ * YANG parser support for metamodel extensions defined in <a href="https://www.rfc-editor.org/rfc/rfc6536">RFC6536</a>.
* Add {@link org.opendaylight.yangtools.rfc6536.parser.DefaultDenyAllStatementSupport} and
* {@link org.opendaylight.yangtools.rfc6536.parser.DefaultDenyWriteStatementSupport} to your reactor to add support
* for this extension.
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG parser support for metamodel extensions defined in <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>.
+ * YANG parser support for metamodel extensions defined in <a href="https://www.rfc-editor.org/rfc/rfc7952">RFC7952</a>.
* Add {@link org.opendaylight.yangtools.rfc7952.parser.AnnotationStatementSupport} to your reactor to add support
* for this extension.
*
/**
* Declared statement representation of 'yang-data' extension defined in
- * <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC 8040</a>.
*/
final class YangDataStatementImpl extends WithSubstatements<YangDataName> implements YangDataStatement {
YangDataStatementImpl(final YangDataName argument,
@Override
public void onStatementAdded(final Mutable<YangDataName, YangDataStatement, YangDataEffectiveStatement> ctx) {
- // as per https://tools.ietf.org/html/rfc8040#section-8,
+ // as per https://www.rfc-editor.org/rfc/rfc8040#section-8,
// yang-data is ignored unless it appears as a top-level statement
if (ctx.coerceParentContext().getParentContext() != null) {
ctx.setUnsupported();
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG parser support for metamodel extensions defined in <a href="https://tools.ietf.org/html/rfc8528">RFC8528</a>.
+ * YANG parser support for metamodel extensions defined in <a href="https://www.rfc-editor.org/rfc/rfc8528">RFC8528</a>.
* Add {@link org.opendaylight.yangtools.rfc8528.parser.MountPointStatementSupport} to your reactor to add support
* for this extension.
*
/**
* An argument to a YANG statement, as defined by section 6.1.3 of both
- * <a href="https://tools.ietf.org/html/rfc6020#section-6.1.3">RFC6020</a> and
- * <a href="https://tools.ietf.org/html/rfc7950#section-6.1.3">RFC7950</a>. An argument is effectively any old string,
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-6.1.3">RFC6020</a> and
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.1.3">RFC7950</a>. An argument is effectively any old string,
* except it can be defined in a number of ways:
* <ul>
* <li>it can be a simple unquoted string, or</li>
/**
* A YANG keyword, as defined, as defined by section 6.1.2 of both
- * <a href="https://tools.ietf.org/html/rfc6020#section-6.1.2">RFC6020</a> and
- * <a href="https://tools.ietf.org/html/rfc7950#section-6.1.2">RFC7950</a>. The two options are discerned by nullability
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-6.1.2">RFC6020</a> and
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.1.2">RFC7950</a>. The two options are discerned by nullability
* of {@link #prefix()} method's return, as hinted by the ABNF for {@code node-identifier} -- and while a keyword is a
* semantically different construct, it shares the same value space.
*
*/
public enum ImportResolutionMode {
/**
- * Standard method as specified by <a href="https://tools.ietf.org/html/rfc6020#section-7.1.5">RFC6020</a> and
- * refined by <a href="https://tools.ietf.org/html/rfc7950#section-7.1.5">RFC7950</a>. {@code import}s are resolved
+ * Standard method as specified by <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.1.5">RFC6020</a> and
+ * refined by <a href="https://www.rfc-editor.org/rfc/rfc7950#section-7.1.5">RFC7950</a>. {@code import}s are resolved
* based on exact match of {@code revision-date} statement. In case it is not specified, latest available revision
* is used.
*/
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
- * YANG parser public API. It allows compiling a set of <a href="https://tools.ietf.org/html/rfc7950">YANG (or YIN)</a>
+ * YANG parser public API. It allows compiling a set of <a href="https://www.rfc-editor.org/rfc/rfc7950">YANG (or YIN)</a>
* modules into a
* {@link org.opendaylight.yangtools.yang.model.api.EffectiveModelContext cross-referenced representation}. The primary
* entry point is {@link YangParserFactory}, which is a thread-safe service. Its
abstract class ArgumentContextUtils {
/**
* YANG 1.0 version of strings, which were not completely clarified in
- * <a href="https://tools.ietf.org/html/rfc6020#section-6.1.3">RFC6020</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc6020#section-6.1.3">RFC6020</a>.
*/
private static final class RFC6020 extends ArgumentContextUtils {
private static final @NonNull RFC6020 INSTANCE = new RFC6020();
/**
* YANG 1.1 version of strings, which were clarified in
- * <a href="https://tools.ietf.org/html/rfc7950#section-6.1.3">RFC7950</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.1.3">RFC7950</a>.
*/
// NOTE: the differences clarified lead to a proper ability to delegate this to ANTLR lexer, but that does not
// understand versions and needs to work with both.
"Augment argument \'%s\' is not valid, it can be only absolute path; or descendant if used in uses", value);
// As per:
- // https://tools.ietf.org/html/rfc6020#section-7.15
- // https://tools.ietf.org/html/rfc7950#section-7.17
+ // https://www.rfc-editor.org/rfc/rfc6020#section-7.15
+ // https://www.rfc-editor.org/rfc/rfc7950#section-7.17
//
// The argument is either Absolute or Descendant based on whether the statement is declared within a 'uses'
// statement. The mechanics differs wildly between the two cases, so let's start by ensuring our argument
/**
* Splitter corresponding to {@code key-arg} ABNF as defined
- * in <a href="https://tools.ietf.org/html/rfc6020#section-12">RFC6020, section 12</a>:
+ * in <a href="https://www.rfc-editor.org/rfc/rfc6020#section-12">RFC6020, section 12</a>:
*
* <p>
* {@code key-arg = node-identifier *(sep node-identifier)}
private static SourceException noBits(final CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.7.4:
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.7.4:
*
* The "bit" statement, which is a substatement to the "type" statement,
* MUST be present if the type is "bits".
private static SourceException noFracDigits(final CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.3.4
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.3.4
*
* The "fraction-digits" statement, which is a substatement to the
* "type" statement, MUST be present if the type is "decimal64".
private static SourceException noEnum(final CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.6.4
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.6.4
*
* The "enum" statement, which is a substatement to the "type"
* statement, MUST be present if the type is "enumeration".
private static SourceException noBase(final CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.10.2
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.10.2
*
* The "base" statement, which is a substatement to the "type"
* statement, MUST be present at least once if the type is
private static SourceException noPath(final CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.12
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.12
*
* When the type is "union", the "type" statement (Section 7.4) MUST be
* present.
private static SourceException noType(final @NonNull CommonStmtCtx stmt) {
/*
- * https://tools.ietf.org/html/rfc7950#section-9.12
+ * https://www.rfc-editor.org/rfc/rfc7950#section-9.12
*
* When the type is "union", the "type" statement (Section 7.4) MUST be
* present.
}
private static boolean shouldCopy(final StmtContext<?, ?, ?> stmt) {
- // https://tools.ietf.org/html/rfc7950#section-7.13:
+ // https://www.rfc-editor.org/rfc/rfc7950#section-7.13:
//
// The effect of a "uses" reference to a grouping is that the nodes
// defined by the grouping are copied into the current schema tree and
return true;
}
- // As per https://tools.ietf.org/html/rfc7950#section-7.13.2:
+ // As per https://www.rfc-editor.org/rfc/rfc7950#section-7.13.2:
//
// o Any node can get refined extensions, if the extension allows
// refinement. See Section 7.19 for details.
//
- // and https://tools.ietf.org/html/rfc7950#section-7.19:
+ // and https://www.rfc-editor.org/rfc/rfc7950#section-7.19:
//
// An extension can allow refinement (see Section 7.13.2) and deviations
// (Section 7.20.3.2), but the mechanism for how this is defined is
/**
* Tests for {@code MUST NOT} statements around include/import interop of RFC6020 and RFC7950, as per
- * <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-12">RFC7950 section 12</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-12">RFC7950 section 12</a>.
*/
class YT1339Test extends AbstractYangTest {
@Test
/**
* Returns true if this statement support and all its substatements ignore if-feature statements (e.g. yang-data
- * extension defined in <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>). Default
+ * extension defined in <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC 8040</a>). Default
* implementation returns false.
*
* @return true if this statement support ignores if-feature statements, otherwise false.
/**
* Returns true if this statement support and all its substatements ignore config statements (e.g. yang-data
- * extension defined in <a href="https://tools.ietf.org/html/rfc8040#section-8">RFC 8040</a>). Default
+ * extension defined in <a href="https://www.rfc-editor.org/rfc/rfc8040#section-8">RFC 8040</a>). Default
* implementation returns false.
*
* @return true if this statement support ignores config statements,
/**
* An exception indicating source-level problem across multiple YANG sources relating to how they are allowed to be
* linked between YANG versions. This typically indicates a direct violation of
- * <a href="https://datatracker.ietf.org/doc/html/rfc7950#section-12">RFC7950 section 12</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-12">RFC7950 section 12</a>.
*/
@Beta
public class YangVersionLinkageException extends SourceException {
SUPPORTED_AUGMENT_TARGETS,
/**
- * Whether a <a href="https://tools.ietf.org/html/rfc6020#section-7.9.2">case shorthand</a> can be created for a
+ * Whether a <a href="https://www.rfc-editor.org/rfc/rfc6020#section-7.9.2">case shorthand</a> can be created for a
* node.
*/
// FIXME: 7.0.0: consider removing this constant, this functionality is part of statement support.
/**
* An XPath expression. This interface defines a parsed representation of an XPath defined in a YANG context, as
- * specified in <a href="https://tools.ietf.org/html/rfc7950#section-6.4">RFC7950, Section 6.4</a>.
+ * specified in <a href="https://www.rfc-editor.org/rfc/rfc7950#section-6.4">RFC7950, Section 6.4</a>.
*
* <p>
* The specification along with rules for {@code path} statement evaluation rules end up defining four incremental
* <p>
* The syntax of expr is required to conform to
* <a href="https://www.w3.org/TR/REC-xml-names/#NT-QName">XML QName format</a>, as further restricted by
- * <a href="https://tools.ietf.org/html/rfc7950#section-9.10.3">YANG {@code identityref} Lexical Representation</a>.
+ * <a href="https://www.rfc-editor.org/rfc/rfc7950#section-9.10.3">YANG {@code identityref} Lexical Representation</a>.
*
* <p>
* Unfortunately we do not know when a literal will need to be interpreted in this way, as that can only be known
* information to look up YANG module (or submodule) source and to be used by various SchemaSourceProviders.
*
* <p>
- * For further reference see: <a href="https://tools.ietf.org/html/rfc6020#section-5.2">RFC6020</a>
- * and <a href="https://tools.ietf.org/html/rfc6022#section-3.1">RFC6022</a>.
+ * For further reference see: <a href="https://www.rfc-editor.org/rfc/rfc6020#section-5.2">RFC6020</a>
+ * and <a href="https://www.rfc-editor.org/rfc/rfc6022#section-3.1">RFC6022</a>.
*/
public record SourceIdentifier(@NonNull Unqualified name, @Nullable Revision revision) implements Identifier {
private static final long serialVersionUID = 3L;
* Returns filename in format <code>name ['@' revision] '.yang'</code>, where revision is date in format YYYY-mm-dd.
*
* <p>
- * @see <a href="http://tools.ietf.org/html/rfc6020#section-5.2">RFC6020</a>
+ * @see <a href="http://www.rfc-editor.org/rfc/rfc6020#section-5.2">RFC6020</a>
*
* @return Filename for this source identifier.
*/
* where Where revision-date is in format YYYY-mm-dd.
*
* <p>
- * See http://tools.ietf.org/html/rfc6020#section-5.2
+ * See http://www.rfc-editor.org/rfc/rfc6020#section-5.2
*
* @param moduleName module name
* @param revision optional revision