aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Luis Fernando Pino Duque <lpino@google.com>2016-04-26 09:31:27 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-04-26 14:39:16 +0000
commit2b0b5cc078e9acc4f9b4908fb6c835119f295ce1 (patch)
treeaa436c00d72a0a0909162fb90d60a5ad9cd07bfa /src/main/java/com/google/devtools/build/lib/analysis
parent6fd9bf133c8c1d33c661518e2a23e43a47a113fe (diff)
Fix the documentation generator to use rule definition instances instead of classes.
-- MOS_MIGRATED_REVID=120794657
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 56170ba839..e4a4a2c9dc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -92,13 +92,10 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
private final List<Class<? extends FragmentOptions>> configurationOptions = new ArrayList<>();
private final Map<String, RuleClass> ruleClassMap = new HashMap<>();
- private final Map<String, Class<? extends RuleDefinition>> ruleDefinitionMap =
- new HashMap<>();
+ private final Map<String, RuleDefinition> ruleDefinitionMap = new HashMap<>();
private final Map<String, Class<? extends NativeAspectFactory>> aspectFactoryMap =
new HashMap<>();
private final Map<Class<? extends RuleDefinition>, RuleClass> ruleMap = new HashMap<>();
- private final Map<Class<? extends RuleDefinition>, RuleDefinition> ruleDefinitionInstanceCache =
- new HashMap<>();
private final Digraph<Class<? extends RuleDefinition>> dependencyGraph =
new Digraph<>();
private ConfigurationCollectionFactory configurationCollectionFactory;
@@ -155,7 +152,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
public Builder addRuleDefinition(RuleDefinition ruleDefinition) {
Class<? extends RuleDefinition> ruleDefinitionClass = ruleDefinition.getClass();
- ruleDefinitionInstanceCache.put(ruleDefinitionClass, ruleDefinition);
+ ruleDefinitionMap.put(ruleDefinitionClass.getName(), ruleDefinition);
dependencyGraph.createNode(ruleDefinitionClass);
for (Class<? extends RuleDefinition> ancestor : ruleDefinition.getMetadata().ancestors()) {
dependencyGraph.addEdge(ancestor, ruleDefinitionClass);
@@ -214,7 +211,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
private RuleClass commitRuleDefinition(Class<? extends RuleDefinition> definitionClass) {
- RuleDefinition instance = checkNotNull(ruleDefinitionInstanceCache.get(definitionClass),
+ RuleDefinition instance = checkNotNull(ruleDefinitionMap.get(definitionClass.getName()),
"addRuleDefinition(new %s()) should be called before build()", definitionClass.getName());
RuleDefinition.Metadata metadata = instance.getMetadata();
@@ -250,7 +247,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
RuleClass ruleClass = instance.build(builder, this);
ruleMap.put(definitionClass, ruleClass);
ruleClassMap.put(ruleClass.getName(), ruleClass);
- ruleDefinitionMap.put(ruleClass.getName(), definitionClass);
+ ruleDefinitionMap.put(ruleClass.getName(), instance);
return ruleClass;
}
@@ -340,9 +337,9 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
private final ImmutableMap<String, RuleClass> ruleClassMap;
/**
- * Maps rule class name to the rule definition metaclasses.
+ * Maps rule class name to the rule definition objects.
*/
- private final ImmutableMap<String, Class<? extends RuleDefinition>> ruleDefinitionMap;
+ private final ImmutableMap<String, RuleDefinition> ruleDefinitionMap;
/**
* Maps aspect name to the aspect factory meta class.
@@ -383,7 +380,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
String runfilesPrefix,
String toolsRepository,
ImmutableMap<String, RuleClass> ruleClassMap,
- ImmutableMap<String, Class<? extends RuleDefinition>> ruleDefinitionMap,
+ ImmutableMap<String, RuleDefinition> ruleDefinitionMap,
ImmutableMap<String, Class<? extends NativeAspectFactory>> aspectFactoryMap,
String defaultWorkspaceFilePrefix,
String defaultWorkspaceFileSuffix,
@@ -467,7 +464,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
/**
* Returns the definition of the rule class definition with the specified name.
*/
- public Class<? extends RuleDefinition> getRuleClassDefinition(String ruleClassName) {
+ public RuleDefinition getRuleClassDefinition(String ruleClassName) {
return ruleDefinitionMap.get(ruleClassName);
}