package com.baidu.disconf.client.support.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Collection; import java.util.Map; import java.util.Set; import org.reflections.Reflections; import org.reflections.Store; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.baidu.disconf.client.common.annotations.DisconfFile; import com.baidu.disconf.client.common.annotations.DisconfItem; import com.google.common.collect.Multimap; /** * 扫描打印器 * * @author liaoqiqi * @version 2014-6-9 */ public class ScanPrinterUtils { protected static final Logger LOGGER = LoggerFactory.getLogger(ScanPrinterUtils.class); /** * 打印出StoreMap的数据 */ public static void printStoreMap(Reflections reflections) { LOGGER.info("Now we will print store map......"); Store store = reflections.getStore(); Map<String/* indexName */, Multimap<String, String>> storeMap = store.getStoreMap(); for (String indexName : storeMap.keySet()) { LOGGER.info("===================================="); LOGGER.info("indexName:" + indexName); Multimap<String, String> multimap = storeMap.get(indexName); for (String firstName : multimap.keySet()) { Collection<String> lastNames = multimap.get(firstName); LOGGER.info("\t\t" + firstName + ": " + lastNames); } } } /** * */ public static void printFileItem(Set<Field> disconfFileItemSet) { for (Field item : disconfFileItemSet) { LOGGER.info(item.toString()); } } /** * */ public static void printFileItemMethod(Set<Method> disconfFileItemSet) { for (Method item : disconfFileItemSet) { LOGGER.info(item.toString()); } } /** * */ public static void printFile(Set<Class<?>> classdata) { for (Class<?> item : classdata) { LOGGER.info(item.toString()); DisconfFile disconfFile = item.getAnnotation(DisconfFile.class); LOGGER.info("\tfile name: " + disconfFile.filename()); LOGGER.info("\tenv: " + disconfFile.env()); LOGGER.info("\tversion: " + disconfFile.env()); } } /** * */ public static void printFileMap(Map<Class<?>, Set<Field>> disconfFileItemMap) { for (Class<?> thisClass : disconfFileItemMap.keySet()) { LOGGER.info(thisClass + " -> "); Set<Field> fields = disconfFileItemMap.get(thisClass); for (Field field : fields) { LOGGER.info("\t\t" + field.toString()); } } } /** * */ public static void printItem(Set<Field> af1) { for (Field item : af1) { LOGGER.info(item.toString()); DisconfItem disconfItem = item.getAnnotation(DisconfItem.class); LOGGER.info("\tkey: " + disconfItem.key()); LOGGER.info("\tenv: " + disconfItem.env()); LOGGER.info("\tversion: " + disconfItem.version()); } } /** * */ public static void printActiveBackup(Set<Class<?>> classdata) { for (Class<?> item : classdata) { LOGGER.info(item.toString()); } } /** * */ public static void printUpdateFile(Set<Class<?>> classdata) { for (Class<?> item : classdata) { LOGGER.info(item.toString()); } } }