## com.puppycrawl.tools.checkstyle.checks
Class ClassResolver

    java.lang.Object
      com.puppycrawl.tools.checkstyle.checks.ClassResolver

    public class ClassResolver

extends Object

Utility class to resolve a class name to an actual class. Note that loaded classes are not initialized.

Limitations: this does not handle inner classes very well.

Version:
  1.0
Author:
  Oliver Burn

Constructor Summary
`ClassResolver(ClassLoader aLoader, String aPkg, Set<String> aImports)` Creates a new `ClassResolver` instance.

Method Summary
`boolean` `isLoadable(String aName)`
`Class<?>` `resolve(String aName, String aCurrentClass)` Attempts to resolve the Class for a specified name.
`Class<?>` `safeLoad(String aName)` Will load a specified class is such a way that it will NOT be initialised.

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

Constructor Detail

### ClassResolver

    public ClassResolver(ClassLoader aLoader,
                         String aPkg,
                         Set<String> aImports)

  Creates a new `ClassResolver` instance.

  Parameters:
    `aLoader` - the ClassLoader to load classes with.
    `aPkg` - the name of the package the class may belong to
    `aImports` - set of imports to check if the class belongs to

Method Detail

### resolve

    public Class<?> resolve(String aName,
                            String aCurrentClass)
                     throws ClassNotFoundException

  Attempts to resolve the Class for a specified name. The algorithm is to check: - fully qualified name - explicit imports - enclosing package - star imports

  Parameters:
    `aName` - name of the class to resolve
    `aCurrentClass` - name of current class (for inner classes).
  Returns:
    the resolved class
  Throws:
    `ClassNotFoundException` - if unable to resolve the class

### isLoadable

    public boolean isLoadable(String aName)

  Parameters:
    `aName` - name of the class to check
  Returns:
    whether a specified class is loadable with safeLoad().

### safeLoad

    public Class<?> safeLoad(String aName)
                      throws ClassNotFoundException

  Will load a specified class is such a way that it will NOT be initialised.

  Parameters:
    `aName` - name of the class to load
  Returns:
    the `Class` for the specified class
  Throws:
    `ClassNotFoundException` - if an error occurs

Copyright © 2001-2011. All Rights Reserved.