Package edu.umd.cs.findbugs.classfile
Class ReflectionDatabaseFactory<E>
- java.lang.Object
-
- edu.umd.cs.findbugs.classfile.ReflectionDatabaseFactory<E>
-
- All Implemented Interfaces:
IDatabaseFactory<E>
public class ReflectionDatabaseFactory<E> extends java.lang.Object implements IDatabaseFactory<E>
A generic database factory that tries to create the database by (in order of preference)- Invoking a static create method
- Invoking a no-arg constructor
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<E>
databaseClass
-
Constructor Summary
Constructors Constructor Description ReflectionDatabaseFactory(java.lang.Class<E> databaseClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description E
createDatabase()
private E
createUsingConstructor()
Try to create the database using a no-arg constructor.private E
createUsingStaticCreateMethod()
Try to create the database using a static create() method.void
registerWith(IAnalysisCache analysisCache)
-
-
-
Field Detail
-
databaseClass
private final java.lang.Class<E> databaseClass
-
-
Constructor Detail
-
ReflectionDatabaseFactory
public ReflectionDatabaseFactory(java.lang.Class<E> databaseClass)
-
-
Method Detail
-
createDatabase
public E createDatabase() throws CheckedAnalysisException
- Specified by:
createDatabase
in interfaceIDatabaseFactory<E>
- Throws:
CheckedAnalysisException
-
createUsingStaticCreateMethod
private E createUsingStaticCreateMethod() throws CheckedAnalysisException
Try to create the database using a static create() method.- Returns:
- the database, or null if there is no static create() method
- Throws:
CheckedAnalysisException
-
createUsingConstructor
private E createUsingConstructor() throws CheckedAnalysisException
Try to create the database using a no-arg constructor.- Returns:
- the database, or null if there is no no-arg constructor
- Throws:
CheckedAnalysisException
-
registerWith
public void registerWith(IAnalysisCache analysisCache)
- Specified by:
registerWith
in interfaceIDatabaseFactory<E>
-
-