1 package org.apache.beehive.controls.api.events; 2 /* 3 * Copyright 2004 The Apache Software Foundation. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 * $Header:$ 18 */ 19 20 import java.rmi.RemoteException; 21 22 import org.apache.beehive.controls.api.context.ControlHandle; 23 24 /** 25 * The RemoteEventDispatcher interface defines the method signature that a container supporting 26 * the external dispatch of Control events would implement if events can be dispatched using RMI. 27 */ 28 public interface RemoteEventDispatcher 29 { 30 /** 31 * Dispatches a Control event to a target control. 32 * @param target the target control 33 * @param event the event to deliver to the control 34 * @param args the parameters to the control event 35 * @throws IllegalAccessException the underlying event method is not accessible due to 36 * access control. 37 * @throws IllegalArgumentException the target is not valid, the event is not a valid event 38 * type for the requested target, or the argument types do not match the event 39 * signature. 40 * @throws InvocationTargetException wraps any exception thrown by the underlying event 41 * handler. 42 */ 43 public Object dispatchEvent(ControlHandle target, EventRef event, Object [] args) 44 throws RemoteException; 45 } 46