aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-12-22 00:56:58 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-22 00:58:31 -0800
commite63a867feb2483851b5169894ff7b3c0bdb26581 (patch)
tree68306264ab9dc8f2383f987a42fb768b2d6436a8 /src/main/java/com/google/devtools/build/lib/analysis/configuredtargets
parent85e8d51c72c5dcb4d1f6a8f3186149339ca59fac (diff)
Redo FileType to reduce generated garbage.
* Change FileType to no longer assume it operates on just the base name (it can now be given a full path). * Move the responsibility to specific classes (Artifact, Path, PathFragment) to decide how they want to offer up a string that includes the file name. * Flip the order in which users are expected to check Artifact type, from FileType#matches(Artifact) to Artifact#isFileType(FileType). This looks natural and should encourage developers to use efficient file type checking methods. * Change CppCompileAction to use the new API. RELNOTES: None PiperOrigin-RevId: 179903239
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/configuredtargets')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
index 4a009fe326..30e9f2f203 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
@@ -35,11 +35,11 @@ import com.google.devtools.build.lib.packages.Provider;
import com.google.devtools.build.lib.util.FileType;
/**
- * A ConfiguredTarget for a source FileTarget. (Generated files use a
- * subclass, OutputFileConfiguredTarget.)
+ * A ConfiguredTarget for a source FileTarget. (Generated files use a subclass,
+ * OutputFileConfiguredTarget.)
*/
public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
- implements FileType.HasFilename, LicensesProvider {
+ implements FileType.HasFileType, LicensesProvider {
private final Artifact artifact;
private final TransitiveInfoProviderMap providers;
@@ -78,12 +78,16 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
/**
* Returns the file name of this file target.
*/
- @Override
public String getFilename() {
return getTarget().getFilename();
}
@Override
+ public String filePathForFileTypeMatcher() {
+ return getFilename();
+ }
+
+ @Override
public <P extends TransitiveInfoProvider> P getProvider(Class<P> provider) {
AnalysisUtils.checkProvider(provider);
return providers.getProvider(provider);