@Test
public void executableQueue() {

    ExecutableQueue<String> _queue = new ExecutableQueue<String>("MyQueue");
    _queue.addListener(new ExecutableQueue.IListener<String>() {
        @Override
        public List<ExecutableQueue.IFilter<String>> getFilters() {
            ExecutableQueue.IFilter<String> _filter = new ExecutableQueue.IFilter<String>() {
                @Override
                public boolean filter(String element) {
                    return StringUtils.containsIgnoreCase(element, "filter");
                }
            };
            return Collections.singletonList(_filter);
        }
        @Override
        public void listen(String element) {
            System.out.println("Listen: " + element);
        }
    });
    _queue.listenStart();
    _queue.putElement("Hi.");
    _queue.putElement("This element will be filtered.");
    _queue.putElement("ExecutableQueue.");
    _queue.destroy();
}