# Interface Repository

All Known Implementing Classes:
  `ClassLoaderRepository, ClassPathRepository, LruCacheClassPathRepository, MemorySensitiveClassPathRepository, SyntheticRepository`

public interface Repository
Abstract definition of a class repository. Instances may be used to load classes from different sources and may be used in the Repository.setRepository method.

See Also:
  - `Repository`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Clears all entries from cache.
  `JavaClass`
  `findClass(String className)`
  Finds the class with the name provided, if the class isn't there, return NULL.
  `ClassPath`
  `getClassPath()`
  Gets the ClassPath associated with this Repository.
  `JavaClass`
  `loadClass(Class<?> clazz)`
  Finds the JavaClass instance for the given run-time class object.
  `JavaClass`
  `loadClass(String className)`
  Finds the class with the name provided, if the class isn't there, make an attempt to load it.
  `void`
  `removeClass(JavaClass clazz)`
  Removes class from repository.
  `void`
  `storeClass(JavaClass clazz)`
  Stores the provided class under "clazz.getClassName()".

- ## Method Details

  - ### clear

    void clear()
    Clears all entries from cache.

  - ### findClass

    JavaClass findClass(String className)
    Finds the class with the name provided, if the class isn't there, return NULL.
    Parameters:
      `className` - the class name.
    Returns:
      the JavaClass instance, or null.

  - ### getClassPath

    ClassPath getClassPath()
    Gets the ClassPath associated with this Repository.
    Returns:
      the ClassPath.

  - ### loadClass

    JavaClass loadClass(Class<?> clazz) throws ClassNotFoundException
    Finds the JavaClass instance for the given run-time class object.
    Parameters:
      `clazz` - the class.
    Returns:
      the JavaClass instance.
    Throws:
      `ClassNotFoundException` - if the class can't be found.

  - ### loadClass

    JavaClass loadClass(String className) throws ClassNotFoundException
    Finds the class with the name provided, if the class isn't there, make an attempt to load it.
    Parameters:
      `className` - the class name.
    Returns:
      the JavaClass instance.
    Throws:
      `ClassNotFoundException` - if the class can't be found.

  - ### removeClass

    void removeClass(JavaClass clazz)
    Removes class from repository.
    Parameters:
      `clazz` - the class to remove.

  - ### storeClass

    void storeClass(JavaClass clazz)
    Stores the provided class under "clazz.getClassName()".
    Parameters:
      `clazz` - the class to store.