From 6aaf5522d0a2ec743b761916935139d7332cc0d0 Mon Sep 17 00:00:00 2001 From: aleigh Date: Mon, 20 Jun 2022 17:14:20 -0700 Subject: [PATCH] lc-eo-changestream: Added ChangeSet class --- .../java/lc/eo/changestream/ChangeSet.java | 39 +++++++++++++++++++ .../java/lc/eo/changestream/ChangeStream.java | 38 ++++++------------ .../lc/eo/changestream/ChangeStreamTest.java | 4 +- 3 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 lc-eo-changestream/src/main/java/lc/eo/changestream/ChangeSet.java 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 000000000..1893e0a9f --- /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 9770687d8..771fa77cb 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 d227e1bbc..a2d2c9269 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()); } } -- GitLab