Rename Root to ArtifactRoot.
This is slightly more descriptive, and we will potentially want to use the name Root for a broader concept shared between ArtifactRoot and RootedPath.
PiperOrigin-RevId: 182082367
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 2e366d9..674fd55 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -37,7 +37,7 @@
import com.google.devtools.build.lib.actions.ActionRegistry;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactOwner;
-import com.google.devtools.build.lib.actions.Root;
+import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.PrerequisiteValidator;
import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory.BuildInfoKey;
@@ -269,12 +269,12 @@
}
@Override
- public Root getBinDirectory() {
+ public ArtifactRoot getBinDirectory() {
return getConfiguration().getBinDirectory(rule.getRepository());
}
@Override
- public Root getMiddlemanDirectory() {
+ public ArtifactRoot getMiddlemanDirectory() {
return getConfiguration().getMiddlemanDirectory(rule.getRepository());
}
@@ -565,27 +565,26 @@
target.getLabel().getPackageIdentifier().equals(getLabel().getPackageIdentifier()),
"Creating output artifact for target '%s' in different package than the rule '%s' "
+ "being analyzed", target.getLabel(), getLabel());
- Root root = getBinOrGenfilesDirectory();
+ ArtifactRoot root = getBinOrGenfilesDirectory();
return getPackageRelativeArtifact(target.getName(), root);
}
/**
- * Returns the root of either the "bin" or "genfiles"
- * tree, based on this target and the current configuration.
- * The choice of which tree to use is based on the rule with
- * which this target (which must be an OutputFile or a Rule) is associated.
+ * Returns the root of either the "bin" or "genfiles" tree, based on this target and the current
+ * configuration. The choice of which tree to use is based on the rule with which this target
+ * (which must be an OutputFile or a Rule) is associated.
*/
- public Root getBinOrGenfilesDirectory() {
+ public ArtifactRoot getBinOrGenfilesDirectory() {
return rule.hasBinaryOutput()
? getConfiguration().getBinDirectory(rule.getRepository())
: getConfiguration().getGenfilesDirectory(rule.getRepository());
}
/**
- * Creates an artifact in a directory that is unique to the package that contains the rule,
- * thus guaranteeing that it never clashes with artifacts created by rules in other packages.
+ * Creates an artifact in a directory that is unique to the package that contains the rule, thus
+ * guaranteeing that it never clashes with artifacts created by rules in other packages.
*/
- public Artifact getPackageRelativeArtifact(String relative, Root root) {
+ public Artifact getPackageRelativeArtifact(String relative, ArtifactRoot root) {
return getPackageRelativeArtifact(PathFragment.create(relative), root);
}
@@ -620,18 +619,18 @@
* option.
*
* <p>This artifact can be created anywhere in the output tree, which, in addition to making
- * sharing possible, opens up the possibility of action conflicts and makes it impossible to
- * infer the label of the rule creating the artifact from the path of the artifact.
+ * sharing possible, opens up the possibility of action conflicts and makes it impossible to infer
+ * the label of the rule creating the artifact from the path of the artifact.
*/
- public Artifact getShareableArtifact(PathFragment rootRelativePath, Root root) {
+ public Artifact getShareableArtifact(PathFragment rootRelativePath, ArtifactRoot root) {
return getAnalysisEnvironment().getDerivedArtifact(rootRelativePath, root);
}
/**
- * Creates an artifact in a directory that is unique to the package that contains the rule,
- * thus guaranteeing that it never clashes with artifacts created by rules in other packages.
+ * Creates an artifact in a directory that is unique to the package that contains the rule, thus
+ * guaranteeing that it never clashes with artifacts created by rules in other packages.
*/
- public Artifact getPackageRelativeArtifact(PathFragment relative, Root root) {
+ public Artifact getPackageRelativeArtifact(PathFragment relative, ArtifactRoot root) {
return getDerivedArtifact(getPackageDirectory().getRelative(relative), root);
}
@@ -639,15 +638,16 @@
* Returns the root-relative path fragment under which output artifacts of this rule should go.
*
* <p>Note that:
+ *
* <ul>
* <li>This doesn't guarantee that there are no clashes with rules in the same package.
- * <li>If possible, {@link #getPackageRelativeArtifact(PathFragment, Root)} should be used
- * instead of this method.
+ * <li>If possible, {@link #getPackageRelativeArtifact(PathFragment, ArtifactRoot)} should be
+ * used instead of this method.
* </ul>
*
* Ideally, user-visible artifacts should all have corresponding output file targets, all others
- * should go into a rule-specific directory.
- * {@link #getUniqueDirectoryArtifact(String, PathFragment, Root)}) ensures that this is the case.
+ * should go into a rule-specific directory. {@link #getUniqueDirectoryArtifact(String,
+ * PathFragment, ArtifactRoot)}) ensures that this is the case.
*/
public PathFragment getPackageDirectory() {
return getLabel().getPackageIdentifier().getSourceRoot();
@@ -661,7 +661,7 @@
* method.
*/
@Override
- public Artifact getDerivedArtifact(PathFragment rootRelativePath, Root root) {
+ public Artifact getDerivedArtifact(PathFragment rootRelativePath, ArtifactRoot root) {
Preconditions.checkState(rootRelativePath.startsWith(getPackageDirectory()),
"Output artifact '%s' not under package directory '%s' for target '%s'",
rootRelativePath, getPackageDirectory(), getLabel());
@@ -675,7 +675,7 @@
* thus ensuring that it doesn't clash with other artifacts generated by other rules using this
* method.
*/
- public Artifact getTreeArtifact(PathFragment rootRelativePath, Root root) {
+ public Artifact getTreeArtifact(PathFragment rootRelativePath, ArtifactRoot root) {
Preconditions.checkState(rootRelativePath.startsWith(getPackageDirectory()),
"Output artifact '%s' not under package directory '%s' for target '%s'",
rootRelativePath, getPackageDirectory(), getLabel());
@@ -686,7 +686,7 @@
* Creates a tree artifact in a directory that is unique to the package that contains the rule,
* thus guaranteeing that it never clashes with artifacts created by rules in other packages.
*/
- public Artifact getPackageRelativeTreeArtifact(PathFragment relative, Root root) {
+ public Artifact getPackageRelativeTreeArtifact(PathFragment relative, ArtifactRoot root) {
return getTreeArtifact(getPackageDirectory().getRelative(relative), root);
}
@@ -695,7 +695,7 @@
* clashes with artifacts created by other rules.
*/
public Artifact getUniqueDirectoryArtifact(
- String uniqueDirectory, String relative, Root root) {
+ String uniqueDirectory, String relative, ArtifactRoot root) {
return getUniqueDirectoryArtifact(uniqueDirectory, PathFragment.create(relative), root);
}
@@ -704,7 +704,7 @@
* clashes with artifacts created by other rules.
*/
public Artifact getUniqueDirectoryArtifact(
- String uniqueDirectory, PathFragment relative, Root root) {
+ String uniqueDirectory, PathFragment relative, ArtifactRoot root) {
return getDerivedArtifact(getUniqueDirectory(uniqueDirectory).getRelative(relative), root);
}