summaryrefslogtreecommitdiffstats
path: root/sangria-contextual/src/main/java/com/tavianator/sangria/contextual/ContextSensitiveProviderInstanceBinding.java
blob: 2fb3353e94e8058e0c5f0a8bf4c188c9ddd35416 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.tavianator.sangria.contextual;

import java.util.*;

import com.google.inject.spi.InjectionPoint;

/**
 * SPI for {@link ContextSensitiveProvider} key bindings.
 *
 * @author Tavian Barnes (tavianator@tavianator.com)
 * @version 1.0
 * @see ContextSensitiveBindingBuilder#toContextSensitiveProvider(ContextSensitiveProvider)
 * @since 1.0
 */
public interface ContextSensitiveProviderInstanceBinding<T> {
    /**
     * @return The {@link ContextSensitiveProvider} instance for this binding.
     */
    ContextSensitiveProvider<? extends T> getContextSensitiveProviderInstance();

    /**
     * @return The field and method {@link InjectionPoint}s of the {@link ContextSensitiveProvider} instance.
     */
    Set<InjectionPoint> getInjectionPoints();
}