package org.smartly.commons.network.socket.server.handlers.pool; import org.smartly.commons.network.socket.server.handlers.ISocketFilter; /** * */ public class SocketFilterPoolIterator { private final Class<? extends ISocketFilter>[] _items; private int _index; // -------------------------------------------------------------------- // c o n s t r u c t o r // -------------------------------------------------------------------- public SocketFilterPoolIterator(final Class<? extends ISocketFilter>[] items) { _items = items; _index = -1; } // -------------------------------------------------------------------- // p u b l i c // -------------------------------------------------------------------- public boolean hasNext() { return (_index + 1) < _items.length; } public ISocketFilter next() { if (this.hasNext()) { _index++; return getInstance(_items[_index]); } return null; } // -------------------------------------------------------------------- // p r i v a t e // -------------------------------------------------------------------- private ISocketFilter getInstance(Class<? extends ISocketFilter> aclass) { try { if (null != aclass) { return aclass.newInstance(); } } catch (Throwable ignored) { } return null; } }