Class BaseLanguageModule

    • Constructor Detail

      • BaseLanguageModule

        @Deprecated
        public BaseLanguageModule​(String name,
                                  String shortName,
                                  String terseName,
                                  Class<?> ruleChainVisitorClass,
                                  String... extensions)
        Deprecated.
        Use the other constructor. It doesn't require a rulechain visitor class, but forces you to mention at least one file extension.
      • BaseLanguageModule

        public BaseLanguageModule​(String name,
                                  String shortName,
                                  String terseName,
                                  String firstExtension,
                                  String... otherExtensions)
    • Method Detail

      • addVersion

        protected void addVersion​(String version,
                                  LanguageVersionHandler languageVersionHandler,
                                  String... versionAliases)
        Adds a non-default version with the given identifier.
        Throws:
        IllegalArgumentException - If the string key or any of the aliases conflict with other already recorded versions
      • addDefaultVersion

        protected void addDefaultVersion​(String version,
                                         LanguageVersionHandler languageVersionHandler,
                                         String... versionAliases)
        Adds a version with the given identifier, and sets it as the default.
        Throws:
        IllegalStateException - If the default version is already set
        IllegalArgumentException - If the string key or any of the aliases conflict with other already recorded versions
      • getName

        public String getName()
        Description copied from interface: Language
        Returns the full name of this Language. This is generally the name of this language without the use of acronyms, but possibly some capital letters, eg "Java". It's suitable for displaying in a GUI.
        Specified by:
        getName in interface Language
        Returns:
        The full name of this language.
      • getShortName

        public String getShortName()
        Description copied from interface: Language
        Returns the short name of this language. This is the commonly used short form of this language's name, perhaps an acronym, but possibly with special characters.
        Specified by:
        getShortName in interface Language
        Returns:
        The short name of this language.
      • getTerseName

        public String getTerseName()
        Description copied from interface: Language
        Returns the terse name of this language. This is a short, alphanumeric, lowercase name, eg "java". It's used to identify the language in the ruleset XML, and is also in the package name of the language module.
        Specified by:
        getTerseName in interface Language
        Returns:
        The terse name of this language.
      • getRuleChainVisitorClass

        public Class<?> getRuleChainVisitorClass()
        Description copied from interface: Language
        Get the RuleChainVisitor implementation class used when visiting the AST structure for this Rules for this Language.
        Specified by:
        getRuleChainVisitorClass in interface Language
        Returns:
        The RuleChainVisitor class.
        See Also:
        RuleChainVisitor
      • getExtensions

        public List<String> getExtensions()
        Description copied from interface: Language
        Returns the list of file extensions associated with this language. This list is unmodifiable. Extensions do not have a '.' prefix.
        Specified by:
        getExtensions in interface Language
        Returns:
        A list of file extensions.
      • hasExtension

        public boolean hasExtension​(String extensionWithoutDot)
        Description copied from interface: Language
        Returns whether this language handles the given file extension. The comparison is done ignoring case.
        Specified by:
        hasExtension in interface Language
        Parameters:
        extensionWithoutDot - A file extension (without '.' prefix)
        Returns:
        true if this language handles the extension, false otherwise.
      • getVersions

        public List<LanguageVersion> getVersions()
        Description copied from interface: Language
        Returns an ordered list of supported versions for this language.
        Specified by:
        getVersions in interface Language
        Returns:
        All supported language versions.
      • hasVersion

        public boolean hasVersion​(String version)
        Description copied from interface: Language
        Returns true if a language version with the given version string is registered. Then, getVersion will return a non-null value.
        Specified by:
        hasVersion in interface Language
        Parameters:
        version - A version string
        Returns:
        True if the version string is known
      • getVersion

        public LanguageVersion getVersion​(String versionName)
        Description copied from interface: Language
        Returns the language version with the given version string. Returns null if no such version exists.
        Specified by:
        getVersion in interface Language
        Parameters:
        versionName - A language version string.
        Returns:
        The corresponding LanguageVersion, null if the version string is not recognized.
      • getDefaultVersion

        public LanguageVersion getDefaultVersion()
        Description copied from interface: Language
        Returns the default language version for this language. This is an arbitrary choice made by the PMD product, and can change between PMD releases. Every language has a default version.
        Specified by:
        getDefaultVersion in interface Language
        Returns:
        The current default language version for this language.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object