private static <DescriptorType> Map<DescriptorType, Object> createMap( final Map<Class<?>, ? extends IAnalysisEngine<DescriptorType, ?>> engineMap, final Class<?> analysisClass) { Map<DescriptorType, Object> descriptorMap; // Create a MapCache that allows the analysis engine to // decide that analysis results should be retained indefinitely. IAnalysisEngine<DescriptorType, ?> engine = engineMap.get(analysisClass); if (analysisClass.equals(JavaClass.class)) { descriptorMap = new MapCache<>(MAX_JAVACLASS_RESULTS_TO_CACHE); } else if (analysisClass.equals(FBClassReader.class)) { descriptorMap = new MapCache<>(MAX_FBCLASSREADER_RESULTS_TO_CACHE); } else if (analysisClass.equals(ConstantPoolGen.class)) { descriptorMap = new MapCache<>(MAX_CONSTANT_POOL_GEN_RESULTS_TO_CACHE); } else if (analysisClass.equals(ClassContext.class)) { descriptorMap = new MapCache<>(10); } else if (engine instanceof IClassAnalysisEngine && ((IClassAnalysisEngine<?>) engine).canRecompute()) { descriptorMap = new MapCache<>(MAX_CLASS_RESULTS_TO_CACHE); } else { descriptorMap = new HashMap<>(); } return descriptorMap; }
private static <DescriptorType> Map<DescriptorType, Object> createMap( final Map<Class<?>, ? extends IAnalysisEngine<DescriptorType, ?>> engineMap, final Class<?> analysisClass) { Map<DescriptorType, Object> descriptorMap; // Create a MapCache that allows the analysis engine to // decide that analysis results should be retained indefinitely. IAnalysisEngine<DescriptorType, ?> engine = engineMap.get(analysisClass); if (analysisClass.equals(JavaClass.class)) { descriptorMap = new MapCache<DescriptorType, Object>(MAX_JAVACLASS_RESULTS_TO_CACHE); } else if (analysisClass.equals(FBClassReader.class)) { descriptorMap = new MapCache<DescriptorType, Object>(MAX_FBCLASSREADER_RESULTS_TO_CACHE); } else if (analysisClass.equals(ConstantPoolGen.class)) { descriptorMap = new MapCache<DescriptorType, Object>(MAX_CONSTANT_POOL_GEN_RESULTS_TO_CACHE); } else if (analysisClass.equals(ClassContext.class)) { descriptorMap = new MapCache<DescriptorType, Object>(10); } else if (engine instanceof IClassAnalysisEngine && ((IClassAnalysisEngine<?>) engine).canRecompute()) { descriptorMap = new MapCache<DescriptorType, Object>(MAX_CLASS_RESULTS_TO_CACHE); } else { descriptorMap = new HashMap<DescriptorType, Object>(); } return descriptorMap; }