Package: groovy.org.codenarc.rule.naming

## [Groovy] Class PropertyNameRule

- groovy.org.codenarc.rule.naming.PropertyNameRule

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

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

  The `regex` property specifies the default regular expression to validate a property 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` property names. It is optional and defaults to null, so that `final` properties that are non-`static` will be validated using `regex`.

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

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

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

  The `ignorePropertyNames` property optionally specifies one or more (comma-separated) property 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` | `ignorePropertyNames`
    `String` | `name`
    `int` | `priority`
    `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 ignorePropertyNames

    - #### String name

    - #### int priority

    - #### String regex

    - #### String staticFinalRegex

    - #### String staticRegex

  - ### Method Detail

    - #### void validate()