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 ofJavaClass
with maximum sizecacheSize
.This repository supports a class path consisting of too many JAR files to handle in
ClassPathRepository
orMemorySensitiveClassPathRepository
without 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 void
clear()
Clears all entries from cache.JavaClass
findClass(java.lang.String className)
Finds the class with the name provided, if the class isn't there, return NULL.void
removeClass(JavaClass javaClass)
Removes class from repositoryvoid
storeClass(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:Repository
Finds the class with the name provided, if the class isn't there, return NULL.- Specified by:
findClass
in interfaceRepository
- Specified by:
findClass
in classAbstractClassPathRepository
-
storeClass
public void storeClass(JavaClass javaClass)
Description copied from interface:Repository
Stores the provided class under "clazz.getClassName()"- Specified by:
storeClass
in interfaceRepository
- Specified by:
storeClass
in classAbstractClassPathRepository
-
removeClass
public void removeClass(JavaClass javaClass)
Description copied from interface:Repository
Removes class from repository- Specified by:
removeClass
in interfaceRepository
- Specified by:
removeClass
in classAbstractClassPathRepository
-
clear
public void clear()
Description copied from interface:Repository
Clears all entries from cache.- Specified by:
clear
in interfaceRepository
- Specified by:
clear
in classAbstractClassPathRepository
-
-