Annotation Interface ReportDef


@Target(TYPE) @Retention(RUNTIME) @Component public @interface ReportDef
Indicates that marked class is a report definition. Report described by this definition will be available in the running application for observing and running it: in UI, REST API or programmatically. Report definition contains of element annotations and optional delegate methods.
Element annotations define report structure containing from input parameters, bands, data sets, templates and value formats. They are also put on the class.
Delegate methods are methods implementing some logic for the related report element, such as data loading or parameter validation. These methods are declared in the class body and annotated with InputParameterDelegate or similar annotations.
Report definition will inherit element annotations and delegate methods from superclasses and implemented interfaces, if those contain report element declarations. The only annotation that can't be inherited and must present on the definition class itself is this one - ReportDef.
Report definition is a Spring bean, so it can autowire dependencies necessary for implementing logic in delegates.
Model object is Report.
See Also:
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Unique report code.
    Report name.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Name of the Spring bean containing report definition.
    Detailed report description.
    Group of the report.
    boolean
    Whether the report should be accessible via REST API.
    boolean
    Whether the report is only for internal system use, i.e.
    Optional unique id in the UUID format.
  • Element Details

    • name

      String name
      Report name.
      Use msg:// format if localization is required. Default message group is inferred from the declaration class's package.
    • code

      String code
      Unique report code. May be used as a unique identifier in APIs.
    • beanName

      @AliasFor(annotation=org.springframework.stereotype.Component.class, attribute="value") String beanName
      Name of the Spring bean containing report definition.
      Default:
      ""
    • description

      String description
      Detailed report description.
      Default:
      ""
    • uuid

      String uuid
      Optional unique id in the UUID format. Specify this attribute to have stable object id in runtime (e.g. for URL routes).
      Default:
      ""
    • group

      Class<?> group
      Group of the report. Specified as class of the annotated report group definition.
      See Also:
      Default:
      void.class
    • restAccessible

      boolean restAccessible
      Whether the report should be accessible via REST API.
      Default:
      false
    • system

      boolean system
      Whether the report is only for internal system use, i.e. it should be hidden in UI.
      Default:
      false