aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-12-04 11:39:33 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-04 11:41:29 -0800
commitbb406b9b2f7b44d96cd5d0d1202503c19e0e6480 (patch)
tree0ab446cbb08ebc9ccc7f55decda0e2e0663914ab /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java
parentb4ba96f52a0cadcbfdf0cc56055ed61768b191f2 (diff)
Expose ObjcProtoProvider as a Skylark object.
This does not provide any meaningful API to interact with ObjcProtoProvider from a skylark context -- it simply allows ObjcProtoProvider to be passed between skylark API calls as an opaque object. This helps facilitate exposure of an Apple Linking API to Skylark which will take place in future changes. RELNOTES: None. PiperOrigin-RevId: 177844029
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java
index b8dd834ff0..2401682a7f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java
@@ -16,9 +16,10 @@ package com.google.devtools.build.lib.rules.objc;
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
+import com.google.devtools.build.lib.packages.NativeInfo;
+import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
@@ -38,7 +39,14 @@ import com.google.devtools.build.lib.vfs.PathFragment;
* all the time (whether protos are used or not), the dependency is specified on objc_proto_library
* instead.
*/
-public class ObjcProtoProvider implements TransitiveInfoProvider {
+public class ObjcProtoProvider extends NativeInfo {
+
+ /** Skylark name for the ObjcProtoProvider. */
+ public static final String SKYLARK_NAME = "ObjcProto";
+
+ /** Skylark constructor and identifier for AppleExecutableBinaryProvider. */
+ public static final NativeProvider<ObjcProtoProvider> SKYLARK_CONSTRUCTOR =
+ new NativeProvider<ObjcProtoProvider>(ObjcProtoProvider.class, SKYLARK_NAME) {};
private final NestedSet<NestedSet<Artifact>> protoGroups;
private final NestedSet<Artifact> protobufHeaders;
@@ -50,6 +58,7 @@ public class ObjcProtoProvider implements TransitiveInfoProvider {
NestedSet<Artifact> portableProtoFilters,
NestedSet<Artifact> protobufHeaders,
NestedSet<PathFragment> protobufHeaderSearchPaths) {
+ super(SKYLARK_CONSTRUCTOR);
this.protoGroups = Preconditions.checkNotNull(protoGroups);
this.portableProtoFilters = Preconditions.checkNotNull(portableProtoFilters);
this.protobufHeaders = Preconditions.checkNotNull(protobufHeaders);