1 // 2 // ======================================================================== 3 // Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd. 4 // ------------------------------------------------------------------------ 5 // All rights reserved. This program and the accompanying materials 6 // are made available under the terms of the Eclipse Public License v1.0 7 // and Apache License v2.0 which accompanies this distribution. 8 // 9 // The Eclipse Public License is available at 10 // http://www.eclipse.org/legal/epl-v10.html 11 // 12 // The Apache License v2.0 is available at 13 // http://www.opensource.org/licenses/apache2.0.php 14 // 15 // You may elect to redistribute this code under either of these licenses. 16 // ======================================================================== 17 // 18 19 package org.eclipse.jetty.websocket.common.events; 20 21 import org.eclipse.jetty.websocket.api.WebSocketPolicy; 22 23 /** 24 * A specific implementation of a EventDriver. 25 */ 26 public interface EventDriverImpl 27 { 28 /** 29 * Create the EventDriver based on this implementation. 30 * 31 * @param websocket 32 * the websocket to wrap 33 * @param policy 34 * the policy to use 35 * @return the created EventDriver 36 * @throws Throwable 37 * if unable to create the EventDriver 38 */ 39 EventDriver create(Object websocket, WebSocketPolicy policy) throws Throwable; 40 41 /** 42 * human readable string describing the rule that would support this EventDriver. 43 * <p> 44 * Used to help developer with possible object annotations, listeners, or base classes. 45 * 46 * @return the human readable description of this event driver rule(s). 47 */ 48 String describeRule(); 49 50 /** 51 * Test for if this implementation can support the provided websocket. 52 * 53 * @param websocket 54 * the possible websocket to test 55 * @return true if implementation can support it, false if otherwise. 56 */ 57 boolean supports(Object websocket); 58 }