david-PC\david
2018-06-12 f240ac3ccd37c541cab2c21cfc433d3510999a3c
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package frame.file;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import frame.data.Entity;
import frame.data.meta.EntityMeta;
import frame.util.Util;
 
public class IOMapping implements IFileload{
 
    private String id;
    private String name;
    private boolean open;
    private int typeCode;
    private List<IOMappingItem> itemList;
    private Map<String, IOMappingItem> fromItemMap;
    private Map<String, IOMappingItem> toItemMap;
 
    public IOMapping() {
        itemList = new ArrayList<IOMappingItem>();
        fromItemMap = new HashMap<String, IOMappingItem>();
        toItemMap = new HashMap<String, IOMappingItem>();
    }
 
    @Override
    public void initLoad(Entity entity) {
        // TODO Auto-generated method stub
        
    }
    public IOMappingRuntime createRuntime(FileIOContext context, String condition, EntityMeta fromMeta, EntityMeta toMeta, Direction direction) {
        
    }
    
    public int size() {
        return itemList.size();
    }
 
    public List<IOMappingItem> getList() {
        return itemList;
    }
 
    public void addItem(IOMappingItem item) {
        String fromField = item.getFromField();
        String toField = item.getToField();
 
        itemList.add(item);
 
        if (fromField != null) {
            fromItemMap.put(fromField, item);
        }
 
        if (toField != null) {
            toItemMap.put(toField, item);
        }
    }
    
    public String getFromField(String toField) {
        return convertField(toField, true);
    }
    
    public String getToField(String fromField) {
       return convertField(fromField, false);
    }
    
    private String convertField(String field, boolean isFromField) {
        IOMappingItem item = getIoMappingItem(field, isFromField);
        
        if (isFromField) {
            return item.getToField();
        }
        else {
            return item.getFromField();
        }
        
    }
    
    public void clear() {
        if (itemList != null) {
            itemList.clear();
        }
        
        fromItemMap.clear();
        toItemMap.clear();
    }
 
    public IOMappingItem getItemByFromField(String fromField) {
        return getIoMappingItem(fromField, true);
    }
    
    public IOMappingItem getItemByToField(String toField) {
        return getIoMappingItem(toField, false);
    }
    
    private IOMappingItem getIoMappingItem(String field, boolean isFromField) {
        Map<String, IOMappingItem> itemMap = null;
        if (Util.isEmptyStr(field)) {
            return null;
        }
         
        field = field.toLowerCase();
        
        if (isFromField) {
            itemMap = fromItemMap;
        }
        else {
            itemMap = toItemMap;
        }
        
        if (!itemMap.containsKey(field)) {
            return null;
        }
 
        IOMappingItem item = itemMap.get(field);
        return item;
    }
 
 
}