// 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 {
  /** The subdirectory under the output base which contains external repositories. */
  public static final PathFragment EXTERNAL_REPOSITORY_LOCATION = PathFragment.create("external");

  /**
   * The path name under which external repositories are accessible if {@code
   * --experimental_sibling_repository_layout} is not in effect.
   */
  public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external");

  /**
   * The name of the package containing information about external repositories if {@code
   * --experimental_disable_external_package} is not in effect.
   */
  public static final PackageIdentifier EXTERNAL_PACKAGE_IDENTIFIER =
      PackageIdentifier.createInMainRepo(EXTERNAL_PACKAGE_NAME);

  public static final PathFragment WORKSPACE_FILE_NAME = PathFragment.create("WORKSPACE");
  public static final PathFragment WORKSPACE_DOT_BAZEL_FILE_NAME =
      PathFragment.create("WORKSPACE.bazel");
  public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__";

  // With this prefix, non-main repositories are symlinked under
  // $output_base/execution_root/__main__/external
  public static final PathFragment EXTERNAL_PATH_PREFIX = PathFragment.create("external");
  // With this prefix, non-main repositories are sibling symlinks of
  // $output_base/execution_root/__main__
  public static final PathFragment EXPERIMENTAL_EXTERNAL_PATH_PREFIX = PathFragment.create("..");
}

@@ -995,29 +995,66 @@
 The 
-path name under which
+name of the package that contains the targets representing
  ext
@@ -1075,23 +1075,25 @@
 ries
- are accessible
+. Only%0A   * works
  if 
@@ -1090,37 +1090,32 @@
  works if %7B@code
-%0A   *
  --experimental_
@@ -1118,33 +1118,32 @@
 tal_
-sibling_repository_layout
+disable_external_package
 %7D is
@@ -1264,36 +1264,42 @@
 %0A  /**%0A   * The 
-name
+identifier
  of the package 
@@ -1302,36 +1302,46 @@
 age 
+that 
 contain
-ing information about
+s the targets representing
  ext
@@ -1358,16 +1358,33 @@
 sitories
+.%0A   * Only works
  if %7B@co
@@ -1385,21 +1385,16 @@
 f %7B@code
-%0A   *
  --exper

Update Javadoc for EXTERNAL_PACKAGE_{NAME,IDENTIFIER}.