diff --git a/lc-eo/src/main/java/lc/eo/EO.java b/lc-eo/src/main/java/lc/eo/EO.java index fbc7bd2fcef018779e71b01c525534f9748ec944..bb8c23b19c50f9cd76b54e21ed0b04590e4bda37 100644 --- a/lc-eo/src/main/java/lc/eo/EO.java +++ b/lc-eo/src/main/java/lc/eo/EO.java @@ -109,7 +109,7 @@ public class EO implements Serializable, Cloneable { */ private HashMap getMetaMap(String key, boolean create) { if (meta == null) { - if (create == true) { + if (create) { meta = new HashMap<>(); } else { return null; @@ -449,7 +449,7 @@ public class EO implements Serializable, Cloneable { if (value == null) { value = new EOLoop(); value.setEditTracker(editTracker); - value.setParent(this); + value.setParent(this, key); data.put(key, value); } return value; @@ -507,7 +507,7 @@ public class EO implements Serializable, Cloneable { if (value instanceof EOLoop) { ((EOLoop) value).setEditTracker(editTracker); - ((EOLoop) value).setParent(this); + ((EOLoop) value).setParent(this, key); } data.put(key, value); diff --git a/lc-eo/src/main/java/lc/eo/EOLoop.java b/lc-eo/src/main/java/lc/eo/EOLoop.java index fac2850cbb273d95a3ca78e222465cf8e8a5384b..b1c2e51d7bd3438ff2591d5d8b1de14af1ac536a 100644 --- a/lc-eo/src/main/java/lc/eo/EOLoop.java +++ b/lc-eo/src/main/java/lc/eo/EOLoop.java @@ -27,6 +27,7 @@ public class EOLoop implements Serializable, Iterable { private ArrayList array; private transient EditTracker editTracker; private EO parent; + private String parentKey; public EOLoop(List eos) { allocateStorage(); @@ -76,9 +77,13 @@ public class EOLoop implements Serializable, Iterable { /** * Set the parent for this loop. This is called automatically by the parent {@link EO} when the loop is set. */ - public void setParent(EO parent) { + public void setParent(EO parent, String parentKey) { + assert (parentKey != null); + assert (parent != null); assert (this.parent != null); + assert (this.parentKey != null); this.parent = parent; + this.parentKey = parentKey; } /**