diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java index 96f42dfa71..35479fca31 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTValue.java @@ -14,25 +14,46 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.syntax.BuildFileAST; import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; +import java.util.List; + /** - * A SkyValue that stores the parsed WORKSPACE file as an AST. + * A SkyValue that stores the parsed WORKSPACE file as a list of AST. Each AST contains the part + * of the WORKSPACE file between the first load statement of a series of load statements and the + * last statement before the next load statement. As example, the comment indicate where the next + * file would be split: + * + * <p><code> + * # First AST + * load('//foo:bar.bzl', 'foobar') + * foo_bar = 1 + * + * # Second AST + * load('//foo:baz.bzl', 'foos') + * load('//bar:foo.bzl', 'bars') + * foos() + * bars() + * + * # Third AST + * load('//:bleh.bzl', 'bleh') + * </code> */ public class WorkspaceASTValue implements SkyValue { - private final BuildFileAST ast; + private final ImmutableList<BuildFileAST> asts; - public WorkspaceASTValue(BuildFileAST ast) { - Preconditions.checkNotNull(ast); - this.ast = ast; + public WorkspaceASTValue(List<BuildFileAST> asts) { + Preconditions.checkNotNull(asts); + this.asts = ImmutableList.copyOf(asts); } - public BuildFileAST getAST() { - return ast; + public ImmutableList<BuildFileAST> getASTs() { + return asts; } public static SkyKey key(RootedPath path) { |