package com.microsoft.bingads.v11.internal.bulk;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
* Encapsulates a row of csv values and the corresponding header mappings for that array
*
*/
public class RowValues {
private String[] columns;
private Map<String, Integer> mappings;
public RowValues(String[] columns, Map<String, Integer> mappings) {
this.columns = columns;
this.mappings = mappings;
}
public RowValues(Map<String, String> rowValues) {
this.mappings = CsvHeaders.getMappings();
this.columns = new String[this.mappings.keySet().size()];
for (String key : rowValues.keySet()) {
this.put(key, rowValues.get(key));
}
}
public RowValues() {
this(new HashMap<String, String>());
}
public String get(String header) {
return columns[this.mappings.get(header)];
}
public String tryGet(String header) {
if (!this.mappings.containsKey(header) || this.mappings.get(header) == null) {
return null;
}
return this.get(header);
}
public void put(String header, String value) {
columns[mappings.get(header)] = value;
}
public boolean containsHeader(String header) {
return mappings.containsKey(header);
}
public String[] getColumns() {
return this.columns;
}
public Map<String, String> toMap() {
Map<String, String> values = new HashMap<String, String>();
for (Entry<String, Integer> entry : this.mappings.entrySet()) {
String value = this.columns[entry.getValue()];
values.put(entry.getKey(), value);
}
return values;
}
public String toDebugString() {
String result = "";
for (Entry<String, Integer> entry : this.mappings.entrySet()) {
String value = this.columns[entry.getValue()];
result += String.format("%s = '%s'", entry.getKey(), value) + "; ";
}
return result;
}
}