Class GuiceModuleUtils

java.lang.Object
org.spincast.core.guice.GuiceModuleUtils

public class GuiceModuleUtils extends Object
Utilities to inspect/manipulate Guice modules.
  • Field Details

    • logger

      protected static final org.slf4j.Logger logger
  • Constructor Details

    • GuiceModuleUtils

      public GuiceModuleUtils(com.google.inject.Module module)
    • GuiceModuleUtils

      public GuiceModuleUtils(Set<com.google.inject.Module> modules)
    • GuiceModuleUtils

      public GuiceModuleUtils(com.google.inject.Module... modules)
  • Method Details

    • getModule

      protected com.google.inject.Module getModule()
    • getElements

      protected List<com.google.inject.spi.Element> getElements()
    • isKeyBound

      public boolean isKeyBound(Class<?> clazz)
      Checks if a class is bound in the Module
    • isKeyBound

      public boolean isKeyBound(com.google.inject.Key<?> keyToCheck)
      Checks if a key is bound in the Module
    • getBindingTarget

      public <T> Class<? extends T> getBindingTarget(com.google.inject.Key<T> specificKey)
      Returns the target of the binding with the specified key. This won't work if a Provider is used!
      Returns:
      the class or null if not found.
    • getBindingTarget

      public <T> Class<? extends T> getBindingTarget(Class<T> specificClass)
      Returns the target of the binding with the specified class/interface. This won't work if a Provider is used!
      Returns:
      the class or null if not found.
    • getBoundClassesExtending

      public <T> Set<Class<? extends T>> getBoundClassesExtending(Class<? extends T> parentType)
      Returns the bound classes that extend or implement the specified parentType.

      IMPORTANT : This doesn't mean that the parentType is actually used as a key in a binding, but that there is a binding for an class that extends/implements parentType.

      This won't work if a Provider is used!

    • getBoundClasses

      protected <T> Set<Class<? extends T>> getBoundClasses(Class<? extends T> parentType, com.google.inject.Key<?> specificKey)
    • createInterceptorModule

      public static SpincastGuiceModuleBase createInterceptorModule(Class<?> toIntercept, Class<?> implementationClass, boolean ignoreMethodsAnnotatedWithInject)
      Creates a module that is going to intercept the calls to all methods defined in an object implementing toIntercept and will call those of implementationClass instead, if available.

      This allows you, for example, to use a specific implementation for a toIntercept binding, even if an existing binding is done for a class extending toIntercept. This existing binding will still continue to use its original implementation for the methods that are not defined on toIntercept but will use the implementation speficied here for those that are.

      You can annotate a method with DontIntercept to prevent it to be intercepted.

      Note that the implementationClass binding must have been done in other module.

      Parameters:
      ignoreMethodsAnnotatedWithInject - if true, methods from the intercepted class annotated with Inject or with Inject will be ignored (they won't be intercepted).
    • createMethodeSignatureKey

      protected static String createMethodeSignatureKey(Method method)
    • removeBindings

      public static com.google.inject.Module removeBindings(com.google.inject.Module module, Set<com.google.inject.Key<?>> keysToRemove)
      Remove bindings from a Module.