/** * Adds the data for given analysis type from given map to the cache * @param analysisClass non null analysis type * @param map non null, pre-filled map with analysis data for given type */ public <E> void reuseClassAnalysis(Class<E> analysisClass, Map<ClassDescriptor, Object> map) { Map<ClassDescriptor, Object> myMap = classAnalysisMap.get(analysisClass); if (myMap != null) { myMap.putAll(map); } else { myMap = createMap(classAnalysisEngineMap, analysisClass); myMap.putAll(map); classAnalysisMap.put(analysisClass, myMap); } }
/** * Find or create a descriptor to analysis object map. * * @param <DescriptorType> * type of descriptor used as the map's key type (ClassDescriptor * or MethodDescriptor) * @param analysisClassToDescriptorMapMap * analysis class to descriptor map map * @param engineMap * analysis class to analysis engine map * @param analysisClass * the analysis map * @return the descriptor to analysis object map */ private static <DescriptorType> Map<DescriptorType, Object> findOrCreateDescriptorMap( final Map<Class<?>, Map<DescriptorType, Object>> analysisClassToDescriptorMapMap, final Map<Class<?>, ? extends IAnalysisEngine<DescriptorType, ?>> engineMap, final Class<?> analysisClass) { Map<DescriptorType, Object> descriptorMap = analysisClassToDescriptorMapMap.get(analysisClass); if (descriptorMap == null) { descriptorMap = createMap(engineMap, analysisClass); analysisClassToDescriptorMapMap.put(analysisClass, descriptorMap); } return descriptorMap; }
/** * Adds the data for given analysis type from given map to the cache * @param analysisClass non null analysis type * @param map non null, pre-filled map with analysis data for given type */ public <E> void reuseClassAnalysis(Class<E> analysisClass, Map<ClassDescriptor, Object> map) { Map<ClassDescriptor, Object> myMap = classAnalysisMap.get(analysisClass); if (myMap != null) { myMap.putAll(map); } else { myMap = createMap(classAnalysisEngineMap, analysisClass); myMap.putAll(map); classAnalysisMap.put(analysisClass, myMap); } }
/** * Find or create a descriptor to analysis object map. * * @param <DescriptorType> * type of descriptor used as the map's key type (ClassDescriptor * or MethodDescriptor) * @param analysisClassToDescriptorMapMap * analysis class to descriptor map map * @param engineMap * analysis class to analysis engine map * @param analysisClass * the analysis map * @return the descriptor to analysis object map */ private static <DescriptorType> Map<DescriptorType, Object> findOrCreateDescriptorMap( final Map<Class<?>, Map<DescriptorType, Object>> analysisClassToDescriptorMapMap, final Map<Class<?>, ? extends IAnalysisEngine<DescriptorType, ?>> engineMap, final Class<?> analysisClass) { Map<DescriptorType, Object> descriptorMap = analysisClassToDescriptorMapMap.get(analysisClass); if (descriptorMap == null) { descriptorMap = createMap(engineMap, analysisClass); analysisClassToDescriptorMapMap.put(analysisClass, descriptorMap); } return descriptorMap; }