Annotation Type ImmutableInfo


  • @Target({TYPE,PACKAGE,ANNOTATION_TYPE})
    @Retention(RUNTIME)
    public @interface ImmutableInfo
    Annotation marking a class as an immutable built in implementation of ProviderInfo.

    This uses the immutable library to generate an implementation class that conforms to the requirements of providers declared in java.

    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      String[] args
      TODO this is here because java reflection doesn't expose parameter names, and methods can't be retrieved in order of declaration.
    • Element Detail

      • args

        String[] args
        TODO this is here because java reflection doesn't expose parameter names, and methods can't be retrieved in order of declaration. We should just have some custom annotation processor to generate this.
        Returns:
        an array of Strings that represent the names of the constructor parameters in order of declared methods. This should be in the lower underscore naming convention for python.
      • defaultSkylarkValues

        String[] defaultSkylarkValues
        Returns:
        an array of string representations of default values to use in the Starlark interpreter if a kwarg is not provided.
        Default:
        {}
      • noneable

        String[] noneable
        Returns:
        an array of fields that should be noneable
        Default:
        {}