Class UserDefinedProviderInfo

  • All Implemented Interfaces:
    ProviderInfo<UserDefinedProviderInfo>, SkylarkProviderInfo, com.google.devtools.build.lib.skylarkinterface.SkylarkPrintable, com.google.devtools.build.lib.skylarkinterface.SkylarkValue, com.google.devtools.build.lib.syntax.ClassObject

    public class UserDefinedProviderInfo
    extends Object
    implements ProviderInfo<UserDefinedProviderInfo>, com.google.devtools.build.lib.skylarkinterface.SkylarkValue, com.google.devtools.build.lib.syntax.ClassObject
    ProviderInfo that is created by a Provider that is defined at runtime by a user. e.g. FooInfo = provider(fields=["foo"]); info = FooInfo(foo="bar") in a build file
    • Constructor Detail

      • UserDefinedProviderInfo

        public UserDefinedProviderInfo​(Provider<UserDefinedProviderInfo> provider,
                                       com.google.common.collect.ImmutableMap<String,​Object> fieldValues)
        Create an instance of UserDefinedProviderInfo
        Parameters:
        provider - The provider that created this UserDefinedProviderInfo object
        fieldValues - A mapping of field names to their values. Note that the names must be valid skylark identifiers as they are accessed via info_instance.<field>. The values must be valid when used in the Skylark interpreter. That is, either primitives, or instances of SkylarkValue
    • Method Detail

      • repr

        public void repr​(com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter printer)
        Specified by:
        repr in interface com.google.devtools.build.lib.skylarkinterface.SkylarkPrintable
      • getValue

        @Nullable
        public Object getValue​(String name)
        Specified by:
        getValue in interface com.google.devtools.build.lib.syntax.ClassObject
      • getFieldNames

        public com.google.common.collect.ImmutableCollection<String> getFieldNames()
        Specified by:
        getFieldNames in interface com.google.devtools.build.lib.syntax.ClassObject
      • getErrorMessageForUnknownField

        @Nullable
        public String getErrorMessageForUnknownField​(String field)
        Specified by:
        getErrorMessageForUnknownField in interface com.google.devtools.build.lib.syntax.ClassObject
      • isImmutable

        public boolean isImmutable()
        Specified by:
        isImmutable in interface com.google.devtools.build.lib.skylarkinterface.SkylarkValue