package foundation.data.mapping;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import foundation.util.ContentBuilder;
|
|
public class MappingsRuntime {
|
|
private List<FieldMappingRuntime> fieldMappingRuntimes;
|
private Map<String, FieldMappingRuntime> fromMap;
|
private Map<String, FieldMappingRuntime> toMap;
|
|
|
public MappingsRuntime() {
|
fieldMappingRuntimes = new ArrayList<FieldMappingRuntime>();
|
fromMap = new HashMap<String, FieldMappingRuntime>();
|
toMap = new HashMap<String, FieldMappingRuntime>();
|
}
|
|
public void addItem(FieldMappingRuntime fieldMappingRuntime) {
|
String fromName = fieldMappingRuntime.getFromName();
|
String toName = fieldMappingRuntime.getToName();
|
|
if (fromName == null || toName == null) {
|
return;
|
}
|
|
fromName = fromName.toLowerCase();
|
toName = toName.toLowerCase();
|
|
fieldMappingRuntimes.add(fieldMappingRuntime);
|
fromMap.put(fromName, fieldMappingRuntime);
|
toMap.put(toName, fieldMappingRuntime);
|
}
|
|
public int[] getFromIndex() {
|
int[] result = new int[fieldMappingRuntimes.size()];
|
|
for (int i = 0; i < result.length; i++) {
|
FieldMappingRuntime fieldMappingRuntime = fieldMappingRuntimes.get(i);
|
result[i] = fieldMappingRuntime.getFromIndex();
|
}
|
|
return result;
|
}
|
|
public List<FieldMappingRuntime> getMappingRuntimeList() {
|
return fieldMappingRuntimes;
|
}
|
|
public boolean containsFromField(String fieldName) {
|
if (fieldName == null) {
|
return false;
|
}
|
|
fieldName = fieldName.toLowerCase();
|
return fromMap.containsKey(fieldName);
|
}
|
|
public boolean containsToField(String fieldName) {
|
if (fieldName == null) {
|
return false;
|
}
|
|
fieldName = fieldName.toLowerCase();
|
return toMap.containsKey(fieldName);
|
}
|
|
public int size() {
|
return fieldMappingRuntimes.size();
|
}
|
|
public String getFromFieldNames(String division) {
|
ContentBuilder result = new ContentBuilder(division);
|
|
for (FieldMappingRuntime fieldMappingRuntime: fieldMappingRuntimes) {
|
String fromName = fieldMappingRuntime.getFromName();
|
result.append(fromName);
|
}
|
|
return result.toString();
|
}
|
|
public String getToFieldNames(String division, String... additional) {
|
ContentBuilder result = new ContentBuilder(division);
|
|
for (FieldMappingRuntime fieldMappingRuntime: fieldMappingRuntimes) {
|
String toName = fieldMappingRuntime.getToName();
|
result.append(toName);
|
}
|
|
if (additional != null) {
|
for (String fieldName: additional) {
|
result.append(fieldName);
|
}
|
}
|
|
return result.toString();
|
}
|
|
}
|