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.annotation.ElementType; 21 import java.lang.annotation.Retention; 22 import java.lang.annotation.RetentionPolicy; 23 import java.lang.annotation.Target; 24 25 /** 26 * The ControlInterface annotation type is used to annotate a control public interface. 27 */ 28 @Retention(RetentionPolicy.RUNTIME) 29 @Target({ElementType.TYPE}) 30 public @interface ControlInterface 31 { 32 /** 33 * Placeholder string used in defaultBinding attr. Tools and runtime should replace 34 * instances of INTERFACE_NAME found in values of defaultBinding with the fully 35 * qualified name of the interface annotated with @ControlInterface. 36 */ 37 static final String INTERFACE_NAME = "<InterfaceName>"; 38 39 /** 40 * Specify the fully qualified name of the control implementation for this control interface. 41 * If no value is specified the implementation will be the name of the interface with 'Impl' appended. 42 * */ 43 String defaultBinding() default INTERFACE_NAME + "Impl"; 44 45 /** 46 * @deprecated Replaced by checker() element. 47 */ 48 Class<? extends ControlChecker> checkerClass() default DefaultControlChecker.class; 49 50 /** 51 * Used by control authors wishing to enforce rich semantic validation on extension and field 52 * instance declarations of their controls. By supplying a ControlChecker implementation 53 * (a "checker") and associating it with your control's public interface, when an 54 * extension of your control is processed at build-time, the checker will be invoked and 55 * can do rich validation of the extension type and field instances via introspection and 56 * analysis of the control extension's type structure, signatures and annotations. 57 * @see org.apache.beehive.controls.api.bean.ControlChecker 58 */ 59 Class<? extends ControlChecker> checker() default DefaultControlChecker.class; 60 } 61