IT-KIMI_SHI\SINOIT.KIMI
2018-06-01 521993214708c66a5498bd669c94a661c11484b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package frame.data.meta;
 
import java.util.HashMap;
import java.util.Map;
 
public class MetaContainer {
 
    private static MetaContainer instance;
    private Map<String, EntityMeta> metaMap;
    
    
    private MetaContainer() {
        metaMap = new HashMap<String, EntityMeta>();
    }
    
    public static synchronized MetaContainer getInstance() {
        if (instance == null) {
            instance = new MetaContainer();
        }
        
        return instance;
    }
    
    public static EntityMeta get(String entityName) throws Exception {
        return instance.doGet(entityName, false);
    }
    
    public static EntityMeta get(String entityName, boolean refresh) throws Exception {
        return instance.doGet(entityName, refresh);
    }
 
    public EntityMeta doGet(String tableName, boolean refresh) throws Exception {
        if (tableName == null) {
            return null;
        }
        
        tableName = tableName.toLowerCase();
        
        EntityMeta meta = metaMap.get(tableName);
        
        if (refresh || meta == null) {
            MetaDataLoader metaDataLoader = new MetaDataLoader(tableName);
            EntityMeta newMeta = metaDataLoader.getEntityMeta();
            
            metaMap.put(tableName.toLowerCase(), newMeta);
            meta = newMeta;
        }
        
        return meta;
    }
 
}