A binding node in the binding graph. If a binding is owned by more than one component, there is one binding node for that binding for every owning component.
| 292 | * there is one binding node for that binding for every owning component. |
| 293 | */ |
| 294 | @AutoValue |
| 295 | @DoNotMock("Use Dagger-supplied implementations") |
| 296 | public abstract static class BindingNode implements Node { |
| 297 | static BindingNode create( |
| 298 | ComponentPath component, Binding binding, Iterable<Element> associatedDeclarations) { |
| 299 | return new AutoValue_BindingGraph_BindingNode( |
| 300 | component, binding, ImmutableSet.copyOf(associatedDeclarations)); |
| 301 | } |
| 302 | |
| 303 | /** The component that owns the {@link #binding()}. */ |
| 304 | @Override |
| 305 | public abstract ComponentPath componentPath(); |
| 306 | |
| 307 | /** The binding. */ |
| 308 | public abstract Binding binding(); |
| 309 | |
| 310 | /** |
| 311 | * The {@link Element}s (other than the binding's {@link Binding#bindingElement()}) that are |
| 312 | * associated with the binding. |
| 313 | * |
| 314 | * <ul> |
| 315 | * <li>{@linkplain BindsOptionalOf optional binding} declarations |
| 316 | * <li>{@linkplain Module#subcomponents() module subcomponent} declarations |
| 317 | * <li>{@linkplain Multibinds multibinding} declarations |
| 318 | * </ul> |
| 319 | */ |
| 320 | public abstract ImmutableSet<Element> associatedDeclarations(); |
| 321 | } |
| 322 | |
| 323 | /** |
| 324 | * A <b>component node</b> in the graph. Every entry point {@linkplain DependencyEdge dependency |
nothing calls this directly
no outgoing calls
no test coverage detected