Key: com.puppycrawl.tools.checkstyle.meta.javadocmetadatascraper.InputJavad<split>
ocMetadataScraperAnnotationUseStyleCheck
Name: InputJavadocMetadataScraperAnnotationUseStyle
FullQualifiedName: com.puppycrawl.tools.checkstyle.meta.javadocmetadatascraper.InputJavad<split>
ocMetadataScraperAnnotationUseStyleCheck
Parent: com.puppycrawl.tools.checkstyle.TreeWalker
Description: <p>
 Checks the style of elements in annotations.
 </p>
 <p>
 Annotations have three element styles starting with the least verbose.
 </p>
 <ul>
 <li>
 {@code ElementStyleOption.COMPACT_NO_ARRAY}
 </li>
 <li>
 {@code ElementStyleOption.COMPACT}
 </li>
 <li>
 {@code ElementStyleOption.EXPANDED}
 </li>
 </ul>
 <p>
 To not enforce an element style a {@code ElementStyleOption.IGNORE} type is provided.
 The desired style can be set through the {@code elementStyle} property.
 </p>
 <p>
 Using the {@code ElementStyleOption.EXPANDED} style is more verbose.
 The expanded version is sometimes referred to as "named parameters" in other languages.
 </p>
 <p>
 Using the {@code ElementStyleOption.COMPACT} style is less verbose.
 This style can only be used when there is an element called 'value' which is either
 the sole element or all other elements have default values.
 </p>
 <p>
 Using the {@code ElementStyleOption.COMPACT_NO_ARRAY} style is less verbose.
 It is similar to the {@code ElementStyleOption.COMPACT} style but single value arrays are
 flagged.
 With annotations a single value array does not need to be placed in an array initializer.
 </p>
 <p>
 The ending parenthesis are optional when using annotations with no elements.
 To always require ending parenthesis use the {@code ClosingParensOption.ALWAYS} type.
 To never have ending parenthesis use the {@code ClosingParensOption.NEVER} type.
 To not enforce a closing parenthesis preference a {@code ClosingParensOption.IGNORE} type is
 provided.
 Set this through the {@code closingParens} property.
 </p>
 <p>
 Annotations also allow you to specify arrays of elements in a standard format.
 As with normal arrays, a trailing comma is optional.
 To always require a trailing comma use the {@code TrailingArrayCommaOption.ALWAYS} type.
 To never have a trailing comma use the {@code TrailingArrayCommaOption.NEVER} type.
 To not enforce a trailing array comma preference a {@code TrailingArrayCommaOption.IGNORE} type
 is provided. Set this through the {@code trailingArrayComma} property.
 </p>
 <p>
 By default the {@code ElementStyleOption} is set to {@code },
 the {@code TrailingArrayCommaOption} is set to {@code },
 and the {@code ClosingParensOption} is set to {@code }.
 </p>
 <p>
 According to the JLS, it is legal to include a trailing comma
 in arrays used in annotations but Sun's Java 5 &amp; 6 compilers will not
 compile with this syntax. This may in be a bug in Sun's compilers
 since eclipse 3.4's built-in compiler does allow this syntax as
 defined in the JLS. Note: this was tested with compilers included with
 JDK versions 1.5.0.17 and 1.6.0.11 and the compiler included with eclipse 3.4.1.
 </p>
 <p>
 See <a href="https://docs.oracle.com/javase/specs/jls/se11/html/jls-9.html#jls-9.7">
 Java Language specification, &#167;9.7</a>.
 </p>
ModuleType: CHECK
Property Type: com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCh<split>
eck$ElementStyleOption
Property DefaultValue: compact_no_array
Property ValidationType: null
Property Description: Define the annotation element styles.
Property Type: com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCh<split>
eck$ClosingParensOption
Property DefaultValue: never
Property ValidationType: null
Property Description: Define the policy for ending parenthesis.
Property Type: com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCh<split>
eck$TrailingArrayCommaOption
Property DefaultValue: never
Property ValidationType: null
Property Description: Define the policy for trailing comma in arrays.
ViolationMessageKey: annotation.incorrect.style
ViolationMessageKey: annotation.parens.missing
ViolationMessageKey: annotation.parens.present
ViolationMessageKey: annotation.trailing.comma.missing
ViolationMessageKey: annotation.trailing.comma.present
