Factor out constants in Label class.
This is to be able to create an additional target in the cmdline package to split a cycle in unknown commit.
RELNOTES: None
PiperOrigin-RevId: 225409893
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
index ecde524..bd8aab6 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
@@ -58,9 +58,6 @@
@ThreadSafe
public final class Label
implements Comparable<Label>, Serializable, SkylarkValue, SkyKey, CommandLineItem {
- public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external");
- public static final PathFragment WORKSPACE_FILE_NAME = PathFragment.create("WORKSPACE");
- public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__";
/**
* Package names that aren't made relative to the current repository because they mean special
@@ -75,12 +72,8 @@
// Visibility is labels aren't actually targets
PathFragment.create("visibility"),
// There is only one //external package
- Label.EXTERNAL_PACKAGE_NAME);
+ LabelConstants.EXTERNAL_PACKAGE_NAME);
- public static final PackageIdentifier EXTERNAL_PACKAGE_IDENTIFIER =
- PackageIdentifier.createInMainRepo(EXTERNAL_PACKAGE_NAME);
-
- public static final PathFragment EXTERNAL_PATH_PREFIX = PathFragment.create("external");
public static final SkyFunctionName TRANSITIVE_TRAVERSAL =
SkyFunctionName.createHermetic("TRANSITIVE_TRAVERSAL");
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/LabelConstants.java b/src/main/java/com/google/devtools/build/lib/cmdline/LabelConstants.java
new file mode 100644
index 0000000..b6c3d72
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/LabelConstants.java
@@ -0,0 +1,26 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.cmdline;
+
+import com.google.devtools.build.lib.vfs.PathFragment;
+
+/** Constants associated with {@code Label}s */
+public class LabelConstants {
+ public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external");
+ public static final PackageIdentifier EXTERNAL_PACKAGE_IDENTIFIER =
+ PackageIdentifier.createInMainRepo(EXTERNAL_PACKAGE_NAME);
+ public static final PathFragment EXTERNAL_PATH_PREFIX = PathFragment.create("external");
+ public static final PathFragment WORKSPACE_FILE_NAME = PathFragment.create("WORKSPACE");
+ public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__";
+}
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
index 732e6a0..4db5bf6 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
@@ -86,7 +86,7 @@
? Preconditions.checkNotNull(
execPath.getParentDirectory(), "Must pass in files, not root directory")
: execPath;
- if (tofind.startsWith(Label.EXTERNAL_PATH_PREFIX)) {
+ if (tofind.startsWith(LabelConstants.EXTERNAL_PATH_PREFIX)) {
// TODO(ulfjack): Remove this when kchodorow@'s exec root rearrangement has been rolled out.
RepositoryName repository = RepositoryName.create("@" + tofind.getSegment(1));
return PackageIdentifier.create(repository, tofind.subFragment(2));
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
index 1678c81..b914a75 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
@@ -140,7 +140,7 @@
* was invalid.
*/
public static Pair<RepositoryName, PathFragment> fromPathFragment(PathFragment path) {
- if (path.segmentCount() < 2 || !path.startsWith(Label.EXTERNAL_PATH_PREFIX)) {
+ if (path.segmentCount() < 2 || !path.startsWith(LabelConstants.EXTERNAL_PATH_PREFIX)) {
return null;
}
try {
@@ -223,7 +223,8 @@
*/
public PathFragment getSourceRoot() {
return isDefault() || isMain()
- ? PathFragment.EMPTY_FRAGMENT : Label.EXTERNAL_PACKAGE_NAME.getRelative(strippedName());
+ ? PathFragment.EMPTY_FRAGMENT
+ : LabelConstants.EXTERNAL_PACKAGE_NAME.getRelative(strippedName());
}
/**
@@ -233,7 +234,7 @@
public PathFragment getPathUnderExecRoot() {
return isDefault() || isMain()
? PathFragment.EMPTY_FRAGMENT
- : Label.EXTERNAL_PATH_PREFIX.getRelative(strippedName());
+ : LabelConstants.EXTERNAL_PATH_PREFIX.getRelative(strippedName());
}
/**