Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Rename validator classes from *Validation to *Validator to be consist…
…ent and to use a better noun for objects. Rename validation test classes from *ValidatorTest to *ValidationTest, since they're not really unit tests of the *Validator classes, but rather tests of certain kinds of validation.

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=211827852
  • Loading branch information
netdpb authored and ronshapiro committed Sep 7, 2018
commit 9e2b5618ad5142c3c8d8166e882b7d823a9641f1
18 changes: 9 additions & 9 deletions java/dagger/internal/codegen/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -202,17 +202,17 @@ java_library(
name = "binding_graph_validation",
srcs = [
"BindingGraphValidationModule.java",
"DependencyCycleValidation.java",
"DependencyCycleValidator.java",
"DependsOnProductionExecutorValidator.java",
"DuplicateBindingsValidation.java",
"IncompatiblyScopedBindingsValidation.java",
"DuplicateBindingsValidator.java",
"IncompatiblyScopedBindingsValidator.java",
"IncorrectlyInstalledBindsMethodsValidator.java",
"InjectBindingValidation.java",
"MapMultibindingValidation.java",
"MissingBindingValidation.java",
"NullableBindingValidation.java",
"ProvisionDependencyOnProducerBindingValidation.java",
"SubcomponentFactoryMethodValidation.java",
"InjectBindingValidator.java",
"MapMultibindingValidator.java",
"MissingBindingValidator.java",
"NullableBindingValidator.java",
"ProvisionDependencyOnProducerBindingValidator.java",
"SubcomponentFactoryMethodValidator.java",
"Validation.java",
],
plugins = CODEGEN_PLUGINS,
Expand Down
18 changes: 9 additions & 9 deletions java/dagger/internal/codegen/BindingGraphValidationModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ interface BindingGraphValidationModule {
@Binds
@IntoSet
@Validation
BindingGraphPlugin dependencyCycle(DependencyCycleValidation validation);
BindingGraphPlugin dependencyCycle(DependencyCycleValidator validation);

@Binds
@IntoSet
Expand All @@ -38,41 +38,41 @@ interface BindingGraphValidationModule {
@Binds
@IntoSet
@Validation
BindingGraphPlugin duplicateBindings(DuplicateBindingsValidation validation);
BindingGraphPlugin duplicateBindings(DuplicateBindingsValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin incompatiblyScopedBindings(IncompatiblyScopedBindingsValidation validation);
BindingGraphPlugin incompatiblyScopedBindings(IncompatiblyScopedBindingsValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin injectBinding(InjectBindingValidation validation);
BindingGraphPlugin injectBinding(InjectBindingValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin mapMultibinding(MapMultibindingValidation validation);
BindingGraphPlugin mapMultibinding(MapMultibindingValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin missingBinding(MissingBindingValidation validation);
BindingGraphPlugin missingBinding(MissingBindingValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin nullableBinding(NullableBindingValidation validation);
BindingGraphPlugin nullableBinding(NullableBindingValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin provisionDependencyOnProducerBinding(
ProvisionDependencyOnProducerBindingValidation validation);
ProvisionDependencyOnProducerBindingValidator validation);

@Binds
@IntoSet
@Validation
BindingGraphPlugin subcomponentFactoryMethod(SubcomponentFactoryMethodValidation validation);
BindingGraphPlugin subcomponentFactoryMethod(SubcomponentFactoryMethodValidator validation);
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@
import javax.lang.model.type.TypeMirror;

/** Reports errors for dependency cycles. */
final class DependencyCycleValidation implements BindingGraphPlugin {
final class DependencyCycleValidator implements BindingGraphPlugin {

private final DependencyRequestFormatter dependencyRequestFormatter;

@Inject
DependencyCycleValidation(DependencyRequestFormatter dependencyRequestFormatter) {
DependencyCycleValidator(DependencyRequestFormatter dependencyRequestFormatter) {
this.dependencyRequestFormatter = dependencyRequestFormatter;
}

Expand Down Expand Up @@ -156,9 +156,7 @@ private ImmutableList<Node> subpathToCycle(ImmutableList<Node> path, Cycle<Node>
private String errorMessage(Cycle<Node> cycle, BindingGraph graph) {
StringBuilder message = new StringBuilder("Found a dependency cycle:");
ImmutableList<DependencyRequest> cycleRequests =
cycle
.endpointPairs()
.stream()
cycle.endpointPairs().stream()
// TODO(dpb): Would be nice to take the dependency graph here.
.map(endpointPair -> nonCycleBreakingEdge(endpointPair, graph))
.map(DependencyEdge::dependencyRequest)
Expand All @@ -173,9 +171,7 @@ private String errorMessage(Cycle<Node> cycle, BindingGraph graph) {
* #breaksCycle(DependencyEdge, BindingGraph) break} a cycle.
*/
private DependencyEdge nonCycleBreakingEdge(EndpointPair<Node> endpointPair, BindingGraph graph) {
return graph
.edgesConnecting(endpointPair.source(), endpointPair.target())
.stream()
return graph.edgesConnecting(endpointPair.source(), endpointPair.target()).stream()
.flatMap(instancesOf(DependencyEdge.class))
.filter(edge -> !breaksCycle(edge, graph))
.findFirst()
Expand Down Expand Up @@ -222,9 +218,7 @@ private boolean breaksCycle(TypeMirror requestedType, RequestKind requestKind) {

private DependencyEdge chooseDependencyEdgeConnecting(
Node source, Node target, BindingGraph bindingGraph) {
return bindingGraph
.edgesConnecting(source, target)
.stream()
return bindingGraph.edgesConnecting(source, target).stream()
.flatMap(instancesOf(DependencyEdge.class))
.findFirst()
.get();
Expand All @@ -238,9 +232,7 @@ private ImmutableNetwork<Node, DependencyEdge> nonCycleBreakingDependencyGraph(
.expectedNodeCount(bindingGraph.nodes().size())
.expectedEdgeCount(bindingGraph.dependencyEdges().size())
.build();
bindingGraph
.dependencyEdges()
.stream()
bindingGraph.dependencyEdges().stream()
.filter(edge -> !breaksCycle(edge, bindingGraph))
.forEach(
edge -> {
Expand All @@ -265,8 +257,7 @@ abstract static class Cycle<N> {

/** Returns the nodes that participate in the cycle. */
ImmutableSet<N> nodes() {
return endpointPairs()
.stream()
return endpointPairs().stream()
.flatMap(pair -> Stream.of(pair.source(), pair.target()))
.collect(toImmutableSet());
}
Expand All @@ -291,7 +282,7 @@ Cycle<N> shift(N startNode) {
ImmutableSet.Builder<EndpointPair<N>> shifted = ImmutableSet.builder();
shifted.addAll(skip(endpointPairs(), startIndex));
shifted.addAll(limit(endpointPairs(), size() - startIndex));
return new AutoValue_DependencyCycleValidation_Cycle<>(shifted.build());
return new AutoValue_DependencyCycleValidator_Cycle<>(shifted.build());
}

@Override
Expand All @@ -310,7 +301,7 @@ static <N> Cycle<N> fromPath(List<N> nodes) {
for (int i = 0; i < nodes.size() - 1; i++) {
cycle.add(EndpointPair.ordered(nodes.get(i), nodes.get(i + 1)));
}
return new AutoValue_DependencyCycleValidation_Cycle<>(cycle.build());
return new AutoValue_DependencyCycleValidator_Cycle<>(cycle.build());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import static dagger.internal.codegen.DaggerStreams.instancesOf;
import static dagger.internal.codegen.DaggerStreams.toImmutableSet;
import static dagger.internal.codegen.DaggerStreams.toImmutableSetMultimap;
import static dagger.internal.codegen.DuplicateBindingsValidation.SourceAndRequest.indexEdgesBySourceAndRequest;
import static dagger.internal.codegen.DuplicateBindingsValidator.SourceAndRequest.indexEdgesBySourceAndRequest;
import static dagger.internal.codegen.Formatter.INDENT;
import static dagger.internal.codegen.Optionals.emptiesLast;
import static java.util.Comparator.comparing;
Expand All @@ -48,7 +48,7 @@
import javax.lang.model.element.TypeElement;

/** Reports errors for conflicting bindings with the same key. */
final class DuplicateBindingsValidation implements BindingGraphPlugin {
final class DuplicateBindingsValidator implements BindingGraphPlugin {

// 1. contributing module or enclosing type
// 2. binding element's simple name
Expand All @@ -69,7 +69,7 @@ final class DuplicateBindingsValidation implements BindingGraphPlugin {
private final BindingDeclarationFormatter bindingDeclarationFormatter;

@Inject
DuplicateBindingsValidation(BindingDeclarationFormatter bindingDeclarationFormatter) {
DuplicateBindingsValidator(BindingDeclarationFormatter bindingDeclarationFormatter) {
this.bindingDeclarationFormatter = bindingDeclarationFormatter;
}

Expand All @@ -96,8 +96,7 @@ private void reportDuplicateBindings(
BindingGraph bindingGraph,
DiagnosticReporter diagnosticReporter) {
ImmutableSet<BindingNode> duplicateBindings =
duplicateDependencies
.stream()
duplicateDependencies.stream()
.map(edge -> bindingGraph.incidentNodes(edge).target())
.flatMap(instancesOf(BindingNode.class))
.collect(toImmutableSet());
Expand All @@ -124,8 +123,7 @@ private String incompatibleBindingsMessage(
ImmutableSet<BindingNode> duplicateBindings,
BindingGraph graph) {
ImmutableSet<BindingNode> multibindings =
duplicateBindings
.stream()
duplicateBindings.stream()
.filter(node -> node.binding().kind().isMultibinding())
.collect(toImmutableSet());
verify(
Expand Down Expand Up @@ -164,8 +162,7 @@ private void formatDeclarations(

private ImmutableSet<BindingDeclaration> declarations(
BindingGraph graph, Set<BindingNode> bindings) {
return bindings
.stream()
return bindings.stream()
.flatMap(node -> declarations(graph, node).stream())
.distinct()
.sorted(BINDING_DECLARATION_COMPARATOR)
Expand All @@ -180,9 +177,7 @@ private ImmutableSet<BindingDeclaration> declarations(BindingGraph graph, Bindin
if (bindingDeclarationFormatter.canFormat(declaration)) {
declarations.add(declaration);
} else {
graph
.successors(node)
.stream()
graph.successors(node).stream()
.flatMap(instancesOf(BindingNode.class))
.flatMap(dependency -> declarations(graph, dependency).stream())
.forEach(declarations::add);
Expand Down Expand Up @@ -211,9 +206,7 @@ abstract static class SourceAndRequest {

static ImmutableSetMultimap<SourceAndRequest, DependencyEdge> indexEdgesBySourceAndRequest(
BindingGraph bindingGraph) {
return bindingGraph
.dependencyEdges()
.stream()
return bindingGraph.dependencyEdges().stream()
.collect(
toImmutableSetMultimap(
edge ->
Expand All @@ -222,7 +215,7 @@ static ImmutableSetMultimap<SourceAndRequest, DependencyEdge> indexEdgesBySource
}

static SourceAndRequest create(Node source, DependencyRequest request) {
return new AutoValue_DuplicateBindingsValidation_SourceAndRequest(source, request);
return new AutoValue_DuplicateBindingsValidator_SourceAndRequest(source, request);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@
* Reports an error for any component that uses bindings with scopes that are not assigned to the
* component.
*/
final class IncompatiblyScopedBindingsValidation implements BindingGraphPlugin {
final class IncompatiblyScopedBindingsValidator implements BindingGraphPlugin {

private final MethodSignatureFormatter methodSignatureFormatter;

@Inject
IncompatiblyScopedBindingsValidation(MethodSignatureFormatter methodSignatureFormatter) {
IncompatiblyScopedBindingsValidator(MethodSignatureFormatter methodSignatureFormatter) {
this.methodSignatureFormatter = methodSignatureFormatter;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
import javax.lang.model.element.TypeElement;

/** Validates bindings from {@code @Inject}-annotated constructors. */
final class InjectBindingValidation implements BindingGraphPlugin {
final class InjectBindingValidator implements BindingGraphPlugin {

private final InjectValidator injectValidator;

@Inject
InjectBindingValidation(InjectValidator injectValidator) {
InjectBindingValidator(InjectValidator injectValidator) {
this.injectValidator = injectValidator.whenGeneratingCode();
}

Expand All @@ -44,9 +44,7 @@ public String pluginName() {

@Override
public void visitGraph(BindingGraph bindingGraph, DiagnosticReporter diagnosticReporter) {
bindingGraph
.bindingNodes()
.stream()
bindingGraph.bindingNodes().stream()
.filter(node -> node.binding().kind().equals(INJECTION)) // TODO(dpb): Move to BindingGraph
.forEach(node -> validateInjectionBinding(node, diagnosticReporter));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@
* Reports an error for any map binding with either more than one contribution with the same map key
* or contributions with inconsistent map key annotation types.
*/
final class MapMultibindingValidation implements BindingGraphPlugin {
final class MapMultibindingValidator implements BindingGraphPlugin {

private final BindingDeclarationFormatter bindingDeclarationFormatter;

@Inject
MapMultibindingValidation(BindingDeclarationFormatter bindingDeclarationFormatter) {
MapMultibindingValidator(BindingDeclarationFormatter bindingDeclarationFormatter) {
this.bindingDeclarationFormatter = bindingDeclarationFormatter;
}

Expand All @@ -70,9 +70,7 @@ public void visitGraph(BindingGraph bindingGraph, DiagnosticReporter diagnosticR
private ImmutableSet<ContributionBinding> mapBindingContributions(
BindingNode bindingNode, BindingGraph bindingGraph) {
checkArgument(bindingNode.binding().kind().equals(MULTIBOUND_MAP));
return bindingGraph
.successors(bindingNode)
.stream()
return bindingGraph.successors(bindingNode).stream()
.flatMap(instancesOf(BindingNode.class))
.map(node -> (ContributionBinding) node.binding())
.collect(toImmutableSet());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@
import javax.lang.model.type.TypeMirror;

/** Reports errors for missing bindings. */
final class MissingBindingValidation implements BindingGraphPlugin {
final class MissingBindingValidator implements BindingGraphPlugin {

private final DaggerTypes types;
private final DaggerElements elements;
private final InjectBindingRegistry injectBindingRegistry;

@Inject
MissingBindingValidation(
MissingBindingValidator(
DaggerTypes types, DaggerElements elements, InjectBindingRegistry injectBindingRegistry) {
this.types = types;
this.injectBindingRegistry = injectBindingRegistry;
Expand All @@ -78,9 +78,7 @@ public String pluginName() {
@Override
public void visitGraph(BindingGraph graph, DiagnosticReporter diagnosticReporter) {
// TODO(ronshapiro): Maybe report each missing binding once instead of each dependency.
graph
.missingBindingNodes()
.stream()
graph.missingBindingNodes().stream()
.flatMap(node -> graph.inEdges(node).stream())
.flatMap(instancesOf(DependencyEdge.class))
.forEach(edge -> reportMissingBinding(edge, graph, diagnosticReporter));
Expand Down Expand Up @@ -115,9 +113,7 @@ private String missingBindingErrorMessage(DependencyEdge edge, BindingGraph grap
errorMessage.append(
" This type supports members injection but cannot be implicitly provided.");
}
graph
.bindingNodes(key)
.stream()
graph.bindingNodes(key).stream()
.map(bindingNode -> bindingNode.componentPath().currentComponent())
.distinct()
.forEach(
Expand Down Expand Up @@ -214,9 +210,7 @@ private static String notAnnotated(Key key, TypeElement type, TypeElement annota
}

private Stream<Scope> releasableReferencesScopes(BindingGraph graph) {
return graph
.componentNodes()
.stream()
return graph.componentNodes().stream()
.flatMap(node -> node.scopes().stream())
.filter(Scope::canReleaseReferences);
}
Expand Down
Loading