Package org.apache.bcel.util
Class LruCacheClassPathRepository
- java.lang.Object
-
- org.apache.bcel.util.AbstractClassPathRepository
-
- org.apache.bcel.util.LruCacheClassPathRepository
-
- All Implemented Interfaces:
Repository
public class LruCacheClassPathRepository extends AbstractClassPathRepository
Maintains a least-recently-used (LRU) cache ofJavaClasswith maximum sizecacheSize.This repository supports a class path consisting of too many JAR files to handle in
ClassPathRepositoryorMemorySensitiveClassPathRepositorywithout causingOutOfMemoryError.- Since:
- 6.4.0
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashMap<java.lang.String,JavaClass>loadedClasses
-
Constructor Summary
Constructors Constructor Description LruCacheClassPathRepository(ClassPath path, int cacheSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clears all entries from cache.JavaClassfindClass(java.lang.String className)Finds the class with the name provided, if the class isn't there, return NULL.voidremoveClass(JavaClass javaClass)Removes class from repositoryvoidstoreClass(JavaClass javaClass)Stores the provided class under "clazz.getClassName()"-
Methods inherited from class org.apache.bcel.util.AbstractClassPathRepository
getClassPath, loadClass, loadClass
-
-
-
-
Field Detail
-
loadedClasses
private final java.util.LinkedHashMap<java.lang.String,JavaClass> loadedClasses
-
-
Constructor Detail
-
LruCacheClassPathRepository
public LruCacheClassPathRepository(ClassPath path, int cacheSize)
-
-
Method Detail
-
findClass
public JavaClass findClass(java.lang.String className)
Description copied from interface:RepositoryFinds the class with the name provided, if the class isn't there, return NULL.- Specified by:
findClassin interfaceRepository- Specified by:
findClassin classAbstractClassPathRepository
-
storeClass
public void storeClass(JavaClass javaClass)
Description copied from interface:RepositoryStores the provided class under "clazz.getClassName()"- Specified by:
storeClassin interfaceRepository- Specified by:
storeClassin classAbstractClassPathRepository
-
removeClass
public void removeClass(JavaClass javaClass)
Description copied from interface:RepositoryRemoves class from repository- Specified by:
removeClassin interfaceRepository- Specified by:
removeClassin classAbstractClassPathRepository
-
clear
public void clear()
Description copied from interface:RepositoryClears all entries from cache.- Specified by:
clearin interfaceRepository- Specified by:
clearin classAbstractClassPathRepository
-
-