package zx.soft.zookeeper.book; import java.util.ArrayList; import java.util.List; /** * Auxiliary cache to handle changes to the lists of tasks and of workers. * * @author wanggang * */ public class ChildrenCache { protected List<String> children; ChildrenCache() { this.children = null; } ChildrenCache(List<String> children) { this.children = children; } List<String> getList() { return children; } List<String> addedAndSet(List<String> newChildren) { ArrayList<String> diff = null; if (children == null) { diff = new ArrayList<String>(newChildren); } else { for (String s : newChildren) { if (!children.contains(s)) { if (diff == null) { diff = new ArrayList<String>(); } diff.add(s); } } } this.children = newChildren; return diff; } List<String> removedAndSet(List<String> newChildren) { List<String> diff = null; if (children != null) { for (String s : children) { if (!newChildren.contains(s)) { if (diff == null) { diff = new ArrayList<String>(); } diff.add(s); } } } this.children = newChildren; return diff; } }