Annotation Interface ElementServiceImplementation


@Target(TYPE) @Retention(RUNTIME) public @interface ElementServiceImplementation
Specifies an implementation of a service. When placed directly on the type itself, the implementation will be the type itself. When used in the ElementService annotation, then this type's value() will be used to determine the implementation. The ElementLoader SPI implementation will determine exactly how implementations handle the ElementServiceImplementation.DefaultImplementation case. However, where the specification is explicit, the implementation must supply the type specified. Additionally, when placed directly on a type (as opposed to appearing in ElementService.implementation(), the loader must use that type unless otherwise specified.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    A marker class used as a placeholder to indicate that there is no specified implementation.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Indicates if this implementation should be exposed as well.
    Specifies the implementation.
  • Element Details

    • value

      Class<?> value
      Specifies the implementation.
      Returns:
      the value
      Default:
      dev.getelements.elements.sdk.annotation.ElementServiceImplementation.DefaultImplementation.class
    • expose

      boolean expose
      Indicates if this implementation should be exposed as well.
      Returns:
      Default:
      false