package frame.object.data; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class DataObjectContainer { private static DataObjectContainer instance; private static Map dataObjectMap; private Object locker; private DataObjectContainer() { dataObjectMap = new ConcurrentHashMap(); locker = new Object(); } public synchronized static DataObjectContainer getInstance() { if (instance == null) { instance = new DataObjectContainer(); } return instance; } public DataObject get(String tableName) throws Exception { if (tableName == null) { return null; } tableName = tableName.toLowerCase(); DataObject result = dataObjectMap.get(tableName); if (result == null) { synchronized (locker) { if (result == null) { result = new DataObject(tableName); result.getEntityMeta(); } } } return result; } }