@Override
 public Object getValue(String name) {
   switch (name) {
     case LABEL_FIELD:
       return getLabel();
     case FILES_FIELD:
       // A shortcut for files to build in Skylark. FileConfiguredTarget and RuleConfiguredTarget
       // always has FileProvider and Error- and PackageGroupConfiguredTarget-s shouldn't be
       // accessible in Skylark.
       return SkylarkNestedSet.of(
           Artifact.class, getProvider(FileProvider.class).getFilesToBuild());
     case DEFAULT_RUNFILES_FIELD:
       return RunfilesProvider.DEFAULT_RUNFILES.apply(this);
     case DATA_RUNFILES_FIELD:
       return RunfilesProvider.DATA_RUNFILES.apply(this);
     default:
       return get(name);
   }
 }