1 package org.apache.beehive.controls.api.bean; 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.lang.reflect.Method; 21 22 /** 23 * The Extensible interface is implemented by a Java Control implementation class if the 24 * control defines an extensibility model that allows extended operations to be declared 25 * using a JCX interface. 26 * <p> 27 * The interface provides the <code>invoke</code> method, that is called whenever an 28 * extended operation is called by the client at run time. 29 */ 30 public interface Extensible 31 { 32 /** 33 * Called by the Controls runtime to handle calls to methods of an 34 * extensible control. 35 * <p> 36 * @param method The extended operation that was called. 37 * @param args Parameters of the operation. 38 * @return The value that should be returned by the operation. 39 * @throws java.lang.Throwable any exception declared on the extended operation may be 40 * thrown. If a checked exception is thrown from the implementation that is not declared 41 * on the original interface, it will be wrapped in a ControlException. 42 */ 43 public Object invoke(Method method, Object[] args) throws Throwable; 44 } 45