Class JavadocReference

  • Direct Known Subclasses:
    FullyQualifiedJavadocReference

    public class JavadocReference
    extends java.lang.Object
    Describes a code reference used in javadoc tags see, link and linkplain. The format of the reference given as string is module/package.class#member label. Members must be separated with a # to be detected. Targets either module, package, class or field/method/constructor in class. This class does not know whether the second part part refers to a package, class or both, as they use the same alphabet and separators.
    See Also:
    link tag specification
    • Field Detail

      • moduleName

        private final java.util.Optional<java.lang.String> moduleName
      • packageNameClassName

        private final java.util.Optional<java.lang.String> packageNameClassName
      • member

        private final java.util.Optional<java.lang.String> member
      • label

        private final java.util.Optional<java.lang.String> label
      • REFERENCE_VALUE_PATTERN

        private static final java.util.regex.Pattern REFERENCE_VALUE_PATTERN
      • GROUP_INDEX_PACKAGECLASS

        private static final int GROUP_INDEX_PACKAGECLASS
        See Also:
        Constant Field Values
    • Constructor Detail

      • JavadocReference

        JavadocReference​(java.util.Optional<java.lang.String> moduleName,
                         java.util.Optional<java.lang.String> packageNameClassName,
                         java.util.Optional<java.lang.String> member,
                         java.util.Optional<java.lang.String> label)
    • Method Detail

      • parse

        public static JavadocReference parse​(java.lang.String reference)
        Parameters:
        reference - the reference value to parse
        Returns:
        the created JavadocReference
        Throws:
        java.lang.IllegalArgumentException - in case the reference has an invalid format
      • getOptionalGroup

        private static java.util.Optional<java.lang.String> getOptionalGroup​(java.util.regex.Matcher matcher,
                                                                             int index)
      • getModuleName

        public java.util.Optional<java.lang.String> getModuleName()
      • getPackageNameClassName

        public java.util.Optional<java.lang.String> getPackageNameClassName()
        Returns:
        a package name, a class name or a package name followed by a class name
      • getMember

        public java.util.Optional<java.lang.String> getMember()
      • getLabel

        public java.util.Optional<java.lang.String> getLabel()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object