Wrapper for some of standard Java collections with ability to add triggers that fire when the collection is modified. Each wrapper is called as Trigger + Java collection name. For example: TriggerCollection, TriggerList. Each trigger has 3 types of callbacks before, after and allow, and can be fired for all standard collection methods. Like before + standard method name. For now the following operations are supported:
-
beforeAdd/afterAdd/allowAdd -
beforeAddAll/afterAddAll/allowAddAll -
beforeRemove/afterRemove/allowRemove -
beforeRemoveAll/afterRemoveAll/allowRemoveAll -
beforeGet/afterGet
- Build project with
mvn clean package - Add jar file to your project
List<Integer> sourceList = new ArrayList<>();
List<Integer> list = TriggerList.from(sourceList)
.beforeAdd(valueToAdd -> someAction(valueToAdd))
.afterRemove((valueToAdd, res) -> res ? doSmth() : doSmthElse())
.build();
list.add(1); // someAction(1) is called
list.add(5); // someAction(5) is called
list.remove(3); // doSmthElse() is calledList<Integer> sourceList = new ArrayList<>();
Predicate<Integer> predicate = integer -> integer < 5;
List<Integer> list = TriggerList.from(sourceList)
.allowAdd(predicate) // allow adding integers less than 5 only
.build();
list.add(4);
list.add(6);
list.size(); // 1