Package: groovy.org.codenarc.rule.naming

## [Groovy] Class FieldNameRule

- groovy.org.codenarc.rule.naming.FieldNameRule

- Rule that verifies that the name of each field matches a regular expression. By default it checks that non-`final` field names start with a lowercase letter and contains only letters or numbers. By default, `final` field names start with an uppercase letter and contain only uppercase letters, numbers and underscores.

  NOTE: This rule checks only regular fields of a class, not properties. In Groovy, properties are fields declared with no access modifier (public, protected, private). Thus, this rule only checks fields that specify an access modifier. For naming of regular properties, see `PropertyNameRule`.

  The `regex` property specifies the default regular expression to validate a field name. It is required and cannot be null or empty. It defaults to '[a-z][a-zA-Z0-9]*'.

  The `finalRegex` property specifies the regular expression to validate `final` field names. It is optional and defaults to null, so that `final` fields that are not `static` will be validated using `regex`.

  The `staticRegex` property specifies the regular expression to validate `static` field names. It is optional and defaults to null, so that `static` fields that are non-`final` will be validated using `regex`.

  The `staticFinalRegex` property specifies the regular expression to validate `static final` field names. It is optional, but defaults to '[A-Z][A-Z0-9_]*'.

  The `privateStaticFinalRegex` property specifies the regular expression to validate `private static final` field names. It is optional, but defaults to '[A-Z][A-Z0-9_]*'.

  The order of precedence for the regular expression properties is: `privateStaticFinalRegex`, `staticFinalRegex`, `finalRegex`, `staticRegex` and finally `regex`. In other words, the first regex in that list matching the modifiers for the field is the one that is applied for the field name validation.

  The `ignoreFieldNames` property optionally specifies one or more (comma-separated) field names that should be ignored (i.e., that should not cause a rule violation). The name(s) may optionally include wildcard characters ('*' or '?').
  Authors:
    Chris Mair
    Hamlet D'Arcy

- - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `Class` | `astVisitorClass`
    `String` | `finalRegex`
    `String` | `ignoreFieldNames`
    `String` | `name`
    `int` | `priority`
    `String` | `privateStaticFinalRegex`
    `String` | `regex`
    `String` | `staticFinalRegex`
    `String` | `staticRegex`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `validate()`

- - ### Property Detail

    - #### Class astVisitorClass

    - #### String finalRegex

    - #### String ignoreFieldNames

    - #### String name

    - #### int priority

    - #### String privateStaticFinalRegex

    - #### String regex

    - #### String staticFinalRegex

    - #### String staticRegex

  - ### Method Detail

    - #### void validate()