Yeah, I dislike *Util names as well, it's not only a co-out but an encouragement to make such classes dumping-grounds/kitchen-sinks.
I was thinking [lang] or maybe [collections] but it's not a collection really. Gary On Tue, Jul 10, 2018 at 10:14 AM Rob Tompkins <chtom...@gmail.com> wrote: > Wouldn’t this be an argument for commons-util (specifically for extensions > of java.util)? Now, I whole heartedly disagree with naming things > “XxxxUtils” because I feel like the whole idea of naming a piece of a > machine a utility is a cop out and bad practice in semantics, so maybe this > goes with [pool] or [lang]?? > > > On Jul 10, 2018, at 11:51 AM, Gary Gregory <garydgreg...@gmail.com> > wrote: > > > > Does anyone have any thoughts on where an OrderedObservable should live > in > > Commons if at all? > > > > import java.util.ArrayList; > > import java.util.List; > > import java.util.concurrent.locks.Lock; > > import java.util.concurrent.locks.ReadWriteLock; > > import java.util.concurrent.locks.ReentrantReadWriteLock; > > import java.util.function.Consumer; > > > > public class OrderedObservable<L> { > > > > private final ReadWriteLock readWriteLock = new > > ReentrantReadWriteLock(true); > > protected final Lock readLock = readWriteLock.readLock(); > > protected final Lock writeLock = readWriteLock.writeLock(); > > private final List<L> listeners = new ArrayList<>(); > > > > public void clearListeners() { > > listeners.clear(); > > } > > > > public void notifyListeners(final Consumer<? super L> algorithm) { > > this.readLock.lock(); > > try { > > this.listeners.forEach(algorithm); > > } finally { > > this.readLock.unlock(); > > } > > } > > > > public L register(final L listener) { > > this.writeLock.lock(); > > try { > > this.listeners.add(listener); > > } finally { > > this.writeLock.unlock(); > > } > > return listener; > > } > > > > public void unregister(final L listener) { > > this.writeLock.lock(); > > try { > > this.listeners.remove(listener); > > } finally { > > this.writeLock.unlock(); > > } > > } > > > > } > > > > Thank you, > > Gary > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >