| 1 19 20 package edu.umd.cs.findbugs.classfile.engine.bcel; 21 22 import edu.umd.cs.findbugs.ba.AnnotationRetentionDatabase; 23 import edu.umd.cs.findbugs.ba.CheckReturnAnnotationDatabase; 24 import edu.umd.cs.findbugs.ba.InnerClassAccessMap; 25 import edu.umd.cs.findbugs.ba.JCIPAnnotationDatabase; 26 import edu.umd.cs.findbugs.ba.NullnessAnnotationDatabase; 27 import edu.umd.cs.findbugs.ba.SourceFinder; 28 import edu.umd.cs.findbugs.ba.SourceInfoMap; 29 import edu.umd.cs.findbugs.ba.ch.Subtypes; 30 import edu.umd.cs.findbugs.ba.npe.ParameterNullnessPropertyDatabase; 31 import edu.umd.cs.findbugs.ba.type.FieldStoreTypeDatabase; 32 import edu.umd.cs.findbugs.classfile.IAnalysisCache; 33 import edu.umd.cs.findbugs.classfile.IAnalysisEngineRegistrar; 34 import edu.umd.cs.findbugs.classfile.IClassAnalysisEngine; 35 import edu.umd.cs.findbugs.classfile.IDatabaseFactory; 36 import edu.umd.cs.findbugs.classfile.ReflectionDatabaseFactory; 37 38 52 public class EngineRegistrar implements IAnalysisEngineRegistrar { 53 private static final IClassAnalysisEngine[] classAnalysisEngineList = { 54 new ClassContextClassAnalysisEngine(), 55 new JavaClassAnalysisEngine(), 56 }; 57 58 private static final IDatabaseFactory<?>[] databaseFactoryList = { 59 new ReflectionDatabaseFactory<Subtypes>(Subtypes.class), 60 new ReflectionDatabaseFactory<InnerClassAccessMap>(InnerClassAccessMap.class), 61 new ReflectionDatabaseFactory<CheckReturnAnnotationDatabase>(CheckReturnAnnotationDatabase.class), 62 new ReflectionDatabaseFactory<AnnotationRetentionDatabase>(AnnotationRetentionDatabase.class), 63 new ReflectionDatabaseFactory<JCIPAnnotationDatabase>(JCIPAnnotationDatabase.class), 64 new ReflectionDatabaseFactory<NullnessAnnotationDatabase>(NullnessAnnotationDatabase.class), 65 new ReflectionDatabaseFactory<SourceFinder>(SourceFinder.class), 66 new ReflectionDatabaseFactory<SourceInfoMap>(SourceInfoMap.class), 67 new ReflectionDatabaseFactory<FieldStoreTypeDatabase>(FieldStoreTypeDatabase.class), 68 new ReflectionDatabaseFactory<ParameterNullnessPropertyDatabase>(ParameterNullnessPropertyDatabase.class), 69 }; 70 71 74 public void registerAnalysisEngines(IAnalysisCache analysisCache) { 75 for (IClassAnalysisEngine engine : classAnalysisEngineList) { 76 engine.registerWith(analysisCache); 77 } 78 79 for (IDatabaseFactory<?> databaseFactory : databaseFactoryList) { 80 databaseFactory.registerWith(analysisCache); 81 } 82 } 83 84 } 85 | Popular Tags |