1 /* 2 Copyright (C) 2007 Dirk Huenniger 3 4 This library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 This library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with this library; if not, write to the Free Software 16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 package org.indi.reactor; 19 20 import java.io.IOException; 21 import java.nio.channels.ClosedChannelException; 22 import java.nio.channels.SelectableChannel; 23 24 /** 25 * Abstract Factory to create EventHandlers 26 * 27 * @author Dirk Hünniger 28 * 29 */ 30 public interface EventHandlerFactory { 31 /** 32 * Create a new EventHandler. Register it with the give reactor and 33 * associate it with the given Channel. 34 * 35 * @param r 36 * The reactor to register the EventHanlder with 37 * @param ch 38 * The channel to associate the EventHandler with 39 * @return The newly created and configured EventHandler 40 * @throws ClosedChannelException 41 * @throws IOException 42 */ 43 public EventHandler produce(Reactor r, SelectableChannel ch) 44 throws ClosedChannelException, IOException; 45 }