add tests / remove TODO
This commit is contained in:
parent
cf52ab5df0
commit
a2ce7b1995
|
@ -22,8 +22,10 @@ package org.elasticsearch.ingest;
|
||||||
import org.elasticsearch.common.Strings;
|
import org.elasticsearch.common.Strings;
|
||||||
import org.elasticsearch.common.xcontent.support.XContentMapValues;
|
import org.elasticsearch.common.xcontent.support.XContentMapValues;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +47,6 @@ public final class Data {
|
||||||
this.document = document;
|
this.document = document;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(talevy): support elements of lists
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <T> T getProperty(String path) {
|
public <T> T getProperty(String path) {
|
||||||
return (T) XContentMapValues.extractValue(path, document);
|
return (T) XContentMapValues.extractValue(path, document);
|
||||||
|
@ -68,7 +69,9 @@ public final class Data {
|
||||||
Map<String, Object> inner = document;
|
Map<String, Object> inner = document;
|
||||||
|
|
||||||
for (int i = 0; i < pathElements.length - 1; i++) {
|
for (int i = 0; i < pathElements.length - 1; i++) {
|
||||||
inner.putIfAbsent(pathElements[i], new HashMap<String, Object>());
|
if (!inner.containsKey(pathElements[i])) {
|
||||||
|
inner.put(pathElements[i], new HashMap<String, Object>());
|
||||||
|
}
|
||||||
inner = (HashMap<String, Object>) inner.get(pathElements[i]);
|
inner = (HashMap<String, Object>) inner.get(pathElements[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,4 +58,14 @@ public class DataTests extends ESTestCase {
|
||||||
data.addField("a.b.c.d", "foo");
|
data.addField("a.b.c.d", "foo");
|
||||||
assertThat(data.getProperty("a.b.c.d"), equalTo("foo"));
|
assertThat(data.getProperty("a.b.c.d"), equalTo("foo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testAddFieldOnExistingField() {
|
||||||
|
data.addField("foo", "newbar");
|
||||||
|
assertThat(data.getProperty("foo"), equalTo("newbar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAddFieldOnExistingParent() {
|
||||||
|
data.addField("fizz.new", "bar");
|
||||||
|
assertThat(data.getProperty("fizz.new"), equalTo("bar"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue