## com.puppycrawl.tools.checkstyle.checks.imports
Class ImportOrderCheck

    java.lang.Object
      com.puppycrawl.tools.checkstyle.api.AutomaticBean
          com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
              com.puppycrawl.tools.checkstyle.api.Check
                  com.puppycrawl.tools.checkstyle.checks.AbstractOptionCheck<ImportOrderOption>
                      com.puppycrawl.tools.checkstyle.checks.imports.ImportOrderCheck

All Implemented Interfaces:
  Configurable, Contextualizable

    public class ImportOrderCheck

extends AbstractOptionCheck<ImportOrderOption>

- groups imports: ensures that groups of imports come in a specific order (e.g., java. comes first, javax. comes second, then everything else)
- adds a separation between groups : ensures that a blank line sit between each group
- sorts imports inside each group: ensures that imports within each group are in lexicographic order
- sorts according to case: ensures that the comparison between import is case sensitive
- groups static imports: ensures that static imports are at the top (or the bottom) of all the imports, or above (or under) each group, or are treated like non static imports (@see `ImportOrderOption`

Example:

      <module name="ImportOrder">
        <property name="groups" value="java,javax"/>
        <property name="ordered" value="true"/>
        <property name="caseSensitive" value="false"/>
        <property name="option" value="above"/>
      </module>

Group descriptions enclosed in slashes are interpreted as regular expressions. If multiple groups match, the one matching a longer substring of the imported name will take precedence, with ties broken first in favor of earlier matches and finally in favor of the first matching group.

There is always a wildcard group to which everything not in a named group belongs. If an import does not match a named group, the group belongs to this wildcard group. The wildcard group position can be specified using the `*` character.

Defaults:

- import groups: none
- separation: false
- ordered: true
- case sensitive: true
- static import: under

Compatible with Java 1.5 source.

Author:
  Bill Schneider, o_sukhodolsky, David DIDIER, Steve McKay

Constructor Summary
`ImportOrderCheck()` Groups static imports under each group.

Method Summary
`void` `beginTree(DetailAST aRootAST)` Called before the starting to process a tree.
`int[]` `getDefaultTokens()` Returns the default token a check is interested in.
`void` `setCaseSensitive(boolean aCaseSensitive)` Sets whether string comparison should be case sensitive or not.
`void` `setGroups(String[] aGroups)` Sets the list of package groups and the order they should occur in the file.
`void` `setOrdered(boolean aOrdered)` Sets whether or not imports should be ordered within any one group of imports.
`void` `setSeparated(boolean aSeparated)` Sets whether or not groups of imports must be separated from one another by at least one blank line.
`void` `visitToken(DetailAST aAST)` Called to process a token.

Methods inherited from class com.puppycrawl.tools.checkstyle.checks.AbstractOptionCheck
`getAbstractOption, setOption`

Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
`destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens`

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
`getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity`

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
`configure, contextualize, finishLocalSetup, getConfiguration, setupChild`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ImportOrderCheck

    public ImportOrderCheck()

  Groups static imports under each group.

Method Detail

### setGroups

    public void setGroups(String[] aGroups)

  Sets the list of package groups and the order they should occur in the file.

  Parameters:
    `aGroups` - a comma-separated list of package names/prefixes.

### setOrdered

    public void setOrdered(boolean aOrdered)

  Sets whether or not imports should be ordered within any one group of imports.

  Parameters:
    `aOrdered` - whether lexicographic ordering of imports within a group required or not.

### setSeparated

    public void setSeparated(boolean aSeparated)

  Sets whether or not groups of imports must be separated from one another by at least one blank line.

  Parameters:
    `aSeparated` - whether groups should be separated by oen blank line.

### setCaseSensitive

    public void setCaseSensitive(boolean aCaseSensitive)

  Sets whether string comparison should be case sensitive or not.

  Parameters:
    `aCaseSensitive` - whether string comparison should be case sensitive.

### getDefaultTokens

    public int[] getDefaultTokens()

  Description copied from class: `Check`
  Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.

  Specified by:
    `getDefaultTokens` in class `Check`
  Returns:
    the default tokens
  See Also:
    `TokenTypes`

### beginTree

    public void beginTree(DetailAST aRootAST)

  Description copied from class: `Check`
  Called before the starting to process a tree. Ideal place to initialise information that is to be collected whilst processing a tree.

  Overrides:
    `beginTree` in class `Check`
  Parameters:
    `aRootAST` - the root of the tree

### visitToken

    public void visitToken(DetailAST aAST)

  Description copied from class: `Check`
  Called to process a token.

  Overrides:
    `visitToken` in class `Check`
  Parameters:
    `aAST` - the token to process

Copyright © 2001-2011. All Rights Reserved.