Annotation Interface Extension


@Target(TYPE) @Retention(RUNTIME) public @interface Extension
Extension annotation defines an extension point for the plugin architecture. It must be used on an interface that should be implemented by plugin implementors. It will be detected automatically by plugin manager when parsing plugin jar files. This means that every plugin can either implement existing Extensions (defined in depedent plugins) of defines new extension points (that shoud be implemented by other plugins that will depends obviously on this one).
Author:
Taha BEN SALAH
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    true if this interface is to be registered in the Factory to create instances.
    group defines a way to organize extension into different groups.
    extensions that share the same implementations This is help
  • Element Details

    • group

      String group
      group defines a way to organize extension into different groups. this helps to filter extensions acording to their group
      Returns:
      group id
      Default:
      ""
    • customizable

      boolean customizable
      true if this interface is to be registered in the Factory to create instances. cutomizable extension are extensions which implementations must be set up according to a user preferences instead of a priority base selector. default value is true
      Returns:
      true if this interface is customizable
      Default:
      true
    • shares

      Class[] shares
      extensions that share the same implementations This is help
      Returns:
      Class array
      Default:
      {}