Class Scopes


  • public class Scopes
    extends java.lang.Object
    Built-in scope implementations.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Scope NO_SCOPE
      No scope; the same as not applying any scope at all.
      static Scope SINGLETON
      One instance per Injector.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isCircularProxy​(java.lang.Object object)
      Returns true if the object is a proxy for a circular dependency, constructed by Guice because it encountered a circular dependency.
      static boolean isScoped​(Binding<?> binding, Scope scope, java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
      Returns true if binding has the given scope.
      static boolean isSingleton​(Binding<?> binding)
      Returns true if binding is singleton-scoped.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • NO_SCOPE

        public static final Scope NO_SCOPE
        No scope; the same as not applying any scope at all. Each time the Injector obtains an instance of an object with "no scope", it injects this instance then immediately forgets it. When the next request for the same binding arrives it will need to obtain the instance over again.

        This exists only in case a class has been annotated with a scope annotation such as @Singleton, and you need to override this to "no scope" in your binding.

        Since:
        2.0
    • Method Detail

      • isSingleton

        public static boolean isSingleton​(Binding<?> binding)
        Returns true if binding is singleton-scoped. If the binding is a linked key binding and belongs to an injector (ie. it was retrieved via Injector.getBinding()), then this method will also true if the target binding is singleton-scoped.
        Since:
        3.0
      • isScoped

        public static boolean isScoped​(Binding<?> binding,
                                       Scope scope,
                                       java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
        Returns true if binding has the given scope. If the binding is a linked key binding and belongs to an injector (ie. it was retrieved via Injector.getBinding()), then this method will also true if the target binding has the given scope.
        Parameters:
        binding - binding to check
        scope - scope implementation instance
        scopeAnnotation - scope annotation class
        Since:
        4.0
      • isCircularProxy

        public static boolean isCircularProxy​(java.lang.Object object)
        Returns true if the object is a proxy for a circular dependency, constructed by Guice because it encountered a circular dependency. Scope implementations should be careful to not cache circular proxies, because the proxies are not intended for general purpose use. (They are designed just to fulfill the immediate injection, not all injections. Caching them can lead to IllegalArgumentExceptions or ClassCastExceptions.)
        Since:
        4.0