#110 - Fixed the collection of values in HalEmbeddedBuilder.

HalEmbeddedBuilder now favors the collection rel to lookup already registered embeddeds.
This commit is contained in:
Oliver Gierke
2013-12-19 13:02:37 +01:00
parent 137e7c390f
commit 5c737d4b53
2 changed files with 23 additions and 4 deletions

View File

@@ -62,16 +62,21 @@ class HalEmbeddedBuilder {
return;
}
String singleRel = getDefaultedRelFor(type, false);
List<Object> currentValue = embeddeds.get(singleRel);
String rel = getDefaultedRelFor(type, true);
if (!embeddeds.containsKey(rel)) {
rel = getDefaultedRelFor(type, false);
}
List<Object> currentValue = embeddeds.get(rel);
if (currentValue == null) {
ArrayList<Object> arrayList = new ArrayList<Object>();
arrayList.add(value);
embeddeds.put(singleRel, arrayList);
embeddeds.put(rel, arrayList);
} else if (currentValue.size() == 1) {
currentValue.add(value);
embeddeds.remove(singleRel);
embeddeds.remove(rel);
embeddeds.put(getDefaultedRelFor(type, true), currentValue);
} else {
currentValue.add(value);