blob: 5880e954dd795b693f93e2e2f36ce219bdd8db0a [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package com.google.devtools.build.lib.analysis;
16
Lukacs Berki6e91eb92015-09-21 09:12:37 +000017import com.google.devtools.build.lib.cmdline.Label;
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010018
19/**
20 * Encapsulates the services available for implementors of the {@link RuleDefinition}
21 * interface.
22 */
23public interface RuleDefinitionEnvironment {
24 /**
25 * Parses the given string as a label and returns the label, by calling {@link
Lukacs Berkia6434362015-09-15 13:56:14 +000026 * Label#parseAbsolute}. Throws a {@link IllegalArgumentException} if the parsing fails.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010027 */
28 Label getLabel(String labelValue);
Luis Fernando Pino Duque90511e12016-01-28 10:49:58 +000029
30 /**
Luis Fernando Pino Duque18d13222016-02-08 14:55:28 +000031 * Prepends the tools repository path to the given string and parses the result
32 * using {@link RuleDefinitionEnvironment#getLabel}
Luis Fernando Pino Duque90511e12016-01-28 10:49:58 +000033 */
Luis Fernando Pino Duque18d13222016-02-08 14:55:28 +000034 Label getToolsLabel(String labelValue);
Luis Fernando Pino Duque207ba4a2016-07-01 15:07:23 +000035
36 /**
37 * Returns the tools repository prefix.
38 */
39 String getToolsRepository();
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010040}