package cn.hmsoft.jdbc.generator;

import java.util.HashMap;
import java.util.Map;

import cn.hmsoft.exception.develop.TableAnnotationNotDefineException;
import cn.hmsoft.jdbc.entity.Table;

/*********************
 * 数据库表辅助类，用来缓存表对应的实体
 * @author zxq
 * @create 2019-05-05 09:49:36
 * @version 2.0.0
 * @email: revisit@126.com
 * @Company: www.hmsoft.cn
 */
public class TableHelper {
	private static Map<String, Table> tableMap = new HashMap<String, Table>();

	/*******************************************************
	 * 根据表对应的实体类查找表信息
	 * 
	 * @param clazz
	 * @return
	 */
	public static Table getTable(Class<?> clazz) {
		if (!tableMap.containsKey(clazz.getName())) {
			synchronized (TableHelper.class) {
				if (!tableMap.containsKey(clazz.getName())) {
					Table table = clazz.getAnnotation(Table.class);
					if (table == null)
						throw new TableAnnotationNotDefineException(clazz);
					tableMap.put(clazz.getName(), table);
				}
			}
		}
		return tableMap.get(clazz.getName());
	}
}
