• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2018 The Dagger Authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package dagger.internal.codegen;
18 
19 import dagger.Binds;
20 import dagger.Module;
21 import dagger.multibindings.IntoSet;
22 import dagger.spi.BindingGraphPlugin;
23 
24 /** Binds the set of {@link BindingGraphPlugin}s used to implement Dagger validation. */
25 @Module
26 interface BindingGraphValidationModule {
27 
28   @Binds
29   @IntoSet
30   @Validation
dependencyCycle(DependencyCycleValidator validation)31   BindingGraphPlugin dependencyCycle(DependencyCycleValidator validation);
32 
33   @Binds
34   @IntoSet
35   @Validation
dependsOnProductionExecutor(DependsOnProductionExecutorValidator validation)36   BindingGraphPlugin dependsOnProductionExecutor(DependsOnProductionExecutorValidator validation);
37 
38   @Binds
39   @IntoSet
40   @Validation
duplicateBindings(DuplicateBindingsValidator validation)41   BindingGraphPlugin duplicateBindings(DuplicateBindingsValidator validation);
42 
43   @Binds
44   @IntoSet
45   @Validation
incompatiblyScopedBindings(IncompatiblyScopedBindingsValidator validation)46   BindingGraphPlugin incompatiblyScopedBindings(IncompatiblyScopedBindingsValidator validation);
47 
48   @Binds
49   @IntoSet
50   @Validation
injectBinding(InjectBindingValidator validation)51   BindingGraphPlugin injectBinding(InjectBindingValidator validation);
52 
53   @Binds
54   @IntoSet
55   @Validation
mapMultibinding(MapMultibindingValidator validation)56   BindingGraphPlugin mapMultibinding(MapMultibindingValidator validation);
57 
58   @Binds
59   @IntoSet
60   @Validation
missingBinding(MissingBindingValidator validation)61   BindingGraphPlugin missingBinding(MissingBindingValidator validation);
62 
63   @Binds
64   @IntoSet
65   @Validation
nullableBinding(NullableBindingValidator validation)66   BindingGraphPlugin nullableBinding(NullableBindingValidator validation);
67 
68   @Binds
69   @IntoSet
70   @Validation
provisionDependencyOnProducerBinding( ProvisionDependencyOnProducerBindingValidator validation)71   BindingGraphPlugin provisionDependencyOnProducerBinding(
72       ProvisionDependencyOnProducerBindingValidator validation);
73 
74   @Binds
75   @IntoSet
76   @Validation
subcomponentFactoryMethod(SubcomponentFactoryMethodValidator validation)77   BindingGraphPlugin subcomponentFactoryMethod(SubcomponentFactoryMethodValidator validation);
78 }
79