Package net.sourceforge.pmd.lang
Class LanguageModuleBase
- java.lang.Object
-
- net.sourceforge.pmd.lang.LanguageModuleBase
-
- All Implemented Interfaces:
Comparable<Language>
,Language
- Direct Known Subclasses:
CpdOnlyLanguageModuleBase
,SimpleLanguageModuleBase
public abstract class LanguageModuleBase extends Object implements Language
Base class for language modules.- Author:
- Clément Fournier
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LanguageModuleBase.LanguageMetadata
Metadata about a language, basically a builder pattern for the language instance.
-
Constructor Summary
Constructors Modifier Constructor Description protected
LanguageModuleBase(LanguageModuleBase.LanguageMetadata metadata)
Construct a module instance using the given metadata.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(Language o)
boolean
equals(Object obj)
@NonNull LanguageVersion
getDefaultVersion()
Returns the default language version for this language.Set<String>
getDependencies()
Returns a set of the IDs of languages that this language instance depends on.@NonNull List<String>
getExtensions()
Returns the list of file extensions associated with this language.String
getName()
Returns the full name of this Language.String
getShortName()
Returns the short name of this language.String
getTerseName()
Returns the terse name of this language.LanguageVersion
getVersion(String version)
Returns the language version with the given version string.Set<String>
getVersionNamesAndAliases()
Returns a complete set of supported version names for this language including all aliases.List<LanguageVersion>
getVersions()
Returns an ordered list of supported versions for this language.int
hashCode()
String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.lang.Language
getId, getLatestVersion, hasExtension, hasVersion, newPropertyBundle
-
-
-
-
Constructor Detail
-
LanguageModuleBase
protected LanguageModuleBase(LanguageModuleBase.LanguageMetadata metadata)
Construct a module instance using the given metadata. The metadata must be properly constructed.- Throws:
IllegalStateException
- If the metadata is invalid (eg missing extensions or name or no versions)
-
-
Method Detail
-
getVersions
public List<LanguageVersion> getVersions()
Description copied from interface:Language
Returns an ordered list of supported versions for this language.- Specified by:
getVersions
in interfaceLanguage
- Returns:
- All supported language versions.
-
getDefaultVersion
public @NonNull 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 interfaceLanguage
- Returns:
- The current default language version for this language.
-
getVersion
public LanguageVersion getVersion(String version)
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 interfaceLanguage
- Parameters:
version
- A language version string.- Returns:
- The corresponding LanguageVersion,
null
if the version string is not recognized.
-
getVersionNamesAndAliases
public Set<String> getVersionNamesAndAliases()
Description copied from interface:Language
Returns a complete set of supported version names for this language including all aliases.- Specified by:
getVersionNamesAndAliases
in interfaceLanguage
- Returns:
- All supported language version names and aliases.
-
getDependencies
public Set<String> getDependencies()
Description copied from interface:Language
Returns a set of the IDs of languages that this language instance depends on. Whenever this language is loaded into aLanguageProcessorRegistry
, those dependencies need to be loaded as well.- Specified by:
getDependencies
in interfaceLanguage
-
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.
-
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 interfaceLanguage
- 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 interfaceLanguage
- Returns:
- The terse name of this language.
-
getExtensions
public @NonNull 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 interfaceLanguage
- Returns:
- A list of file extensions.
-
compareTo
public int compareTo(Language o)
- Specified by:
compareTo
in interfaceComparable<Language>
-
-