net.sourceforge.pmd.lang

## Enum Language

- java.lang.Object
- - java.lang.Enum<Language>
  - - net.sourceforge.pmd.lang.Language

All Implemented Interfaces:
  Serializable, Comparable<Language>

    public enum Language
    extends Enum<Language>

This is an enumeration of the Languages of which PMD is aware. The primary use of a Language is for Rules, but they are also used by utilities such as CPD.

The following are key components of a Language in PMD:

- Name - Full name of the Language
- Short name - The common short form of the Language
- Terse name - The shortest and simplest possible form of the Language name, generally used for Rule configuration
- Extensions - File extensions associated with the Language
- Rule Chain Visitor - The RuleChainVisitor implementation used for this Language
- Versions - The LanguageVersions associated with the Language

See Also:
  `LanguageVersion`, `LanguageVersionDiscoverer`

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`CPP`
`ECMASCRIPT`
`FORTRAN`
`JAVA`
`JSP`
`PHP`
`RUBY`
`XML`
`XSL`

### Method Summary

Methods
`static String` `commaSeparatedTerseNames(List<Language> languages)` Return a comma separated list of Language terse names.
`static List<Language>` `findByExtension(String extension)` A utility method to find the Languages which are associated with the given file extension.
`static Language` `findByTerseName(String terseName)` A utility method to find the Language associated with the given terse name, whatever the case is.
`static List<Language>` `findWithRuleSupport()` A utility method to find the Languages which have Rule support.
`static Language` `getDefaultLanguage()` Return the default language for PMD.
`LanguageVersion` `getDefaultVersion()` Get the current PMD defined default LanguageVersion for this Language.
`List<String>` `getExtensions()` Get the list of file extensions associated with this Language.
`String` `getName()` Get the full name of this Language.
`Class<?>` `getRuleChainVisitorClass()` Get the RuleChainVisitor implementation class used when visiting the AST structure for this Rules for this Language.
`String` `getShortName()` Get the short name of this Language.
`String` `getTerseName()` Get the terse name of this Language.
`LanguageVersion` `getVersion(String version)` Get the LanguageVersion for the version string from this Language.
`List<LanguageVersion>` `getVersions()` Gets the list of supported LanguageVersion for this Language.
`boolean` `hasExtension(String extension)` Returns whether the given Language handles the given file extension.
`String` `toString()` A friendly String form of the Language.
`static Language` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static Language[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### CPP

    public static final Language CPP

#### FORTRAN

    public static final Language FORTRAN

#### ECMASCRIPT

    public static final Language ECMASCRIPT

#### JAVA

    public static final Language JAVA

#### JSP

    public static final Language JSP

#### PHP

    public static final Language PHP

#### RUBY

    public static final Language RUBY

#### XSL

    public static final Language XSL

#### XML

    public static final Language XML

### Method Detail

#### values

    public static Language[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (Language c : Language.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static Language valueOf(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null

#### getName

    public String getName()

Get the full name of this Language. This is generally the name of this Language without the use of acronyms.

Returns:
  The full name of this Language.

#### getShortName

    public String getShortName()

Get the short name of this Language. This is the commonly used short form of this Language's name, perhaps an acronym.

Returns:
  The short name of this Language.

#### getTerseName

    public String getTerseName()

Get the terse name of this Language. This is used for Rule configuration.

Returns:
  The terse name of this Language.

#### getExtensions

    public List<String> getExtensions()

Get the list of file extensions associated with this Language.

Returns:
  List of file extensions.

#### hasExtension

    public boolean hasExtension(String extension)

Returns whether the given Language handles the given file extension. The comparison is done ignoring case.

Parameters:
  `extension` - A file extension.
Returns:
  `true` if this Language handles this extension, `false` otherwise.

#### getRuleChainVisitorClass

    public Class<?> getRuleChainVisitorClass()

Get the RuleChainVisitor implementation class used when visiting the AST structure for this Rules for this Language.

Returns:
  The RuleChainVisitor class.
See Also:
  `RuleChainVisitor`

#### getVersions

    public List<LanguageVersion> getVersions()

Gets the list of supported LanguageVersion for this Language.

Returns:
  The LanguageVersion for this Language.

#### getDefaultVersion

    public LanguageVersion getDefaultVersion()

Get the current PMD defined default LanguageVersion 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.

Returns:
  The current default LanguageVersion for this Language.

#### getVersion

    public LanguageVersion getVersion(String version)

Get the LanguageVersion for the version string from this Language.

Parameters:
  `version` - The language version string.
Returns:
  The corresponding LanguageVersion, `null` if the version string is not recognized.

#### toString

    public String toString()

A friendly String form of the Language.

Overrides:
  `toString` in class `Enum<Language>`

#### findWithRuleSupport

    public static List<Language> findWithRuleSupport()

A utility method to find the Languages which have Rule support.

Returns:
  A List of Languages with Rule support.

#### findByExtension

    public static List<Language> findByExtension(String extension)

A utility method to find the Languages which are associated with the given file extension.

Parameters:
  `extension` - The file extension.
Returns:
  A List of Languages which handle the extension.

#### findByTerseName

    public static Language findByTerseName(String terseName)

A utility method to find the Language associated with the given terse name, whatever the case is.

Parameters:
  `terseName` - The Language terse name.
Returns:
  The Language with this terse name, `null` if there is no Language with this terse name.

#### commaSeparatedTerseNames

    public static String commaSeparatedTerseNames(List<Language> languages)

Return a comma separated list of Language terse names.

Parameters:
  `languages` - The languages.
Returns:
  Comma separated terse names.

#### getDefaultLanguage

    public static Language getDefaultLanguage()

Return the default language for PMD.

Returns:
  the proper default language