/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.core.injector.extension;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* This annotation marks an <i>interface bean</i>. It is <b>highly</b>
* recommended to use this annotation to avoid ambiguities., e.g.
*
* <pre>
*
* @ExtensionInterface()
* public interface ISubElement {
* @MapName("validation-policy")
* String getValidationPolicy();
* }
* </pre>
*
* or with a provided extension point id
*
* <pre>
* @ExtensionInterface("org.eclipse.core.someId")
* public interface ISubElement {
* @MapName("validation-policy")
* String getValidationPolicy();
* }
* </pre>
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ExtensionInterface {
/**
* The id of the extension point this {@code ExtensionInterface} is used
* for.
* <p>
* <b>Note:</b>The id may consist of several compatible ids separated by a
* comma without any white space.
*
* @return the extension point id
*/
String id() default "";
}