diff --git a/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeSet.java b/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeSet.java new file mode 100644 index 0000000000000000000000000000000000000000..1893e0a9f3bfa567ee680632959695cb8e4538d0 --- /dev/null +++ b/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeSet.java @@ -0,0 +1,39 @@ +package lc.eo.changestream; + +import lc.eo.EO; +import lc.eo.EOLoop; + +import java.util.HashSet; + +public class ChangeSet { + private final HashSet objectsDirty = new HashSet<>(); + private final HashSet loopsDirty = new HashSet<>(); + private final HashSet objectsRemoved = new HashSet<>(); + private final HashSet objectsAdded = new HashSet<>(); + + public HashSet getObjectsDirty() { + return objectsDirty; + } + + public HashSet getLoopsDirty() { + return loopsDirty; + } + + public HashSet getObjectsRemoved() { + return objectsRemoved; + } + + public HashSet getObjectsAdded() { + return objectsAdded; + } + + @Override + public String toString() { + return "ChangeSet{" + + "objectsDirty=" + objectsDirty + + ", loopsDirty=" + loopsDirty + + ", objectsRemoved=" + objectsRemoved + + ", objectsAdded=" + objectsAdded + + '}'; + } +} diff --git a/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeStream.java b/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeStream.java index 9770687d8edb2db1283f40f3de4165bf7dce9f18..771fa77cb78e98e9d605a3cff3efc8aa1cf57700 100644 --- a/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeStream.java +++ b/lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeStream.java @@ -6,51 +6,35 @@ import lc.eo.EOLoop; import lc.eo.EditTracker; import java.io.Serializable; -import java.util.HashSet; public class ChangeStream implements EditTracker { - private final HashSet objectsDirty = new HashSet<>(); - private final HashSet loopsDirty = new HashSet<>(); - private final HashSet objectsRemoved = new HashSet<>(); - private final HashSet objectsAdded = new HashSet<>(); + private ChangeSet changeSet = new ChangeSet(); @Override public void attributeUpdate(EO eo, String key, Serializable oldValue, Serializable newValue, EOListener listener) { - if (objectsAdded.contains(eo)) return; - objectsDirty.add(eo); + if (changeSet.getObjectsAdded().contains(eo)) return; + changeSet.getObjectsDirty().add(eo); } @Override public void loopRemoved(EOLoop loop, EO removedEo, int index) { - loopsDirty.add(loop); - objectsRemoved.remove(removedEo); - objectsAdded.remove(removedEo); + changeSet.getLoopsDirty().add(loop); + changeSet.getObjectsRemoved().remove(removedEo); + changeSet.getObjectsAdded().remove(removedEo); } @Override public void loopAdded(EOLoop loop, EO addedEo) { - loopsDirty.add(loop); - objectsAdded.add(addedEo); + changeSet.getLoopsDirty().add(loop); + changeSet.getObjectsAdded().add(addedEo); } @Override public void objectAdded(EO obj) { - objectsAdded.add(obj); + changeSet.getObjectsAdded().add(obj); } - public HashSet getObjectsDirty() { - return objectsDirty; - } - - public HashSet getLoopsDirty() { - return loopsDirty; - } - - public HashSet getObjectsRemoved() { - return objectsRemoved; - } - - public HashSet getObjectsAdded() { - return objectsAdded; + public ChangeSet getChangeSet() { + return changeSet; } } diff --git a/lc-eo-changestream/src/test/java/lc/eo/changestream/ChangeStreamTest.java b/lc-eo-changestream/src/test/java/lc/eo/changestream/ChangeStreamTest.java index d227e1bbc7c6b2bf7e70cc790604a062c07ba84c..a2d2c926965bae28f129ce984859c40eb1c1467f 100644 --- a/lc-eo-changestream/src/test/java/lc/eo/changestream/ChangeStreamTest.java +++ b/lc-eo-changestream/src/test/java/lc/eo/changestream/ChangeStreamTest.java @@ -12,7 +12,7 @@ public class ChangeStreamTest { EO base = new EO(); base.setEditTracker(cs); base.setValue("test", "Hello!"); - assertEquals(0, cs.getObjectsDirty().size()); - assertEquals(1, cs.getObjectsAdded().size()); + assertEquals(0, cs.getChangeSet().getObjectsDirty().size()); + assertEquals(1, cs.getChangeSet().getObjectsAdded().size()); } }