package frame.object.data;
|
|
import java.util.Map;
|
import java.util.concurrent.ConcurrentHashMap;
|
|
public class DataObjectContainer {
|
|
private static DataObjectContainer instance;
|
private static Map<String, DataObject> dataObjectMap;
|
private Object locker;
|
|
|
private DataObjectContainer() {
|
dataObjectMap = new ConcurrentHashMap<String, DataObject>();
|
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;
|
}
|
|
}
|