From b448eef2dec00bef15adf874138756b4fb68b651 Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 2 May 2017 21:50:24 +0200 Subject: [PATCH] Add static methods to return target kinds for built-in targets Add static methods to return target kinds of InputFile and OutFile, as well as suffix of target kind of Rule. RELNOTES: None PiperOrigin-RevId: 154866926 --- .../com/google/devtools/build/lib/packages/InputFile.java | 7 ++++++- .../com/google/devtools/build/lib/packages/OutputFile.java | 7 ++++++- .../java/com/google/devtools/build/lib/packages/Rule.java | 5 +++++ .../com/google/devtools/build/lib/packages/RuleClass.java | 2 +- .../devtools/build/lib/query2/FakeSubincludeTarget.java | 7 ++++++- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/packages/InputFile.java b/src/main/java/com/google/devtools/build/lib/packages/InputFile.java index 6f2fe228095265..c04a346c5dc3aa 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/InputFile.java +++ b/src/main/java/com/google/devtools/build/lib/packages/InputFile.java @@ -109,7 +109,7 @@ public PathFragment getExecPath() { @Override public String getTargetKind() { - return "source file"; + return targetKind(); } @Override @@ -121,4 +121,9 @@ public Rule getAssociatedRule() { public Location getLocation() { return location; } + + /** Returns the target kind for all input files. */ + public static String targetKind() { + return "source file"; + } } diff --git a/src/main/java/com/google/devtools/build/lib/packages/OutputFile.java b/src/main/java/com/google/devtools/build/lib/packages/OutputFile.java index eed4c63f3f496e..101cb1b3943a3b 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/OutputFile.java +++ b/src/main/java/com/google/devtools/build/lib/packages/OutputFile.java @@ -52,7 +52,7 @@ public Rule getGeneratingRule() { @Override public String getTargetKind() { - return "generated file"; + return targetKind(); } @Override @@ -64,4 +64,9 @@ public Rule getAssociatedRule() { public Location getLocation() { return generatingRule.getLocation(); } + + /** Returns the target kind for all output files. */ + public static String targetKind() { + return "generated file"; + } } diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java index 0a9bd9c82e219b..da411c1abb061f 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java @@ -730,4 +730,9 @@ public Collection getAspectLabelsSuperset(DependencyFilter pred public RepositoryName getRepository() { return getLabel().getPackageIdentifier().getRepository(); } + + /** Returns the suffix of target kind for all rules. */ + public static String targetKindSuffix() { + return " rule"; + } } diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java index d8c06f52aa28c3..9293b093acada8 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java @@ -1168,7 +1168,7 @@ public Attribute.Builder copy(String name) { Attribute... attributes) { this.name = name; this.isSkylark = isSkylark; - this.targetKind = name + " rule"; + this.targetKind = name + Rule.targetKindSuffix(); this.skylarkExecutable = skylarkExecutable; this.skylarkTestable = skylarkTestable; this.documented = documented; diff --git a/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java b/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java index 224ada6c01f63c..2a221d10621b8d 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java +++ b/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java @@ -56,7 +56,7 @@ public Package getPackage() { @Override public String getTargetKind() { - return "source file"; + return targetKind(); } @Override @@ -107,4 +107,9 @@ public boolean equals(Object obj) { FakeSubincludeTarget other = (FakeSubincludeTarget) obj; return label.equals(other.label) && pkg.equals(other.pkg); } + + /** Returns the target kind for all fake sub-include targets. */ + public static String targetKind() { + return "source file"; + } }