public final class

ElementSource

extends Object
java.lang.Object
   ↳ com.google.inject.spi.ElementSource

Class Overview

Contains information about where and how an element was bound.

The declaring source refers to a location in source code that defines the Guice element. For example, if the element is created from a method annotated by @Provides, the declaring source of element would be the method itself.

The getStackTrace() refers to the sequence of calls ends at one of Binder bindXXX() methods and eventually defines the element. Note that getStackTrace() lists StackTraceElement StackTraceElements in reverse chronological order. The first element (index zero) is the last method call and the last element is the first method invocation. By default, the stack trace is not collected. The default behavior can be changed by setting the guice_include_stack_traces flag value. The value can be either DEFAULT or COMPLETE. Note that collecting stack traces for every binding can cause a performance hit when the injector is created.

The sequence of class names of Module modules involved in the element creation can be retrieved by getModuleClassNames(). Similar to getStackTrace(), the order is reverse chronological. The first module (index 0) is the module that installs the element. The last module is the root module.

In order to support the cases where a Guice element is created from another Guice element (original) (e.g., by Element#applyTo()), it also provides a reference to the original element source (getOriginalElementSource()).

Summary

Public Methods
Object getDeclaringSource()
Returns a single location in source code that defines the element.
List<String> getModuleClassNames()
Returns the class names of modules involved in creating this Element.
List<Integer> getModuleConfigurePositionsInStackTrace()
Returns the position of Module#configure(Binder) configure(Binder) method call in the stack trace for modules that their classes returned by getModuleClassNames().
ElementSource getOriginalElementSource()
Returns the ElementSource of the element this was created or copied from.
StackTraceElement[] getStackTrace()
Returns the sequence of method calls that ends at one of Binder bindXXX() methods and eventually defines the element.
boolean isStackTraceRetained()
Returns true if stack trace was collected.
String toString()
Returns getDeclaringSource().toString() value.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public Object getDeclaringSource ()

Returns a single location in source code that defines the element. It can be any object such as Constructor, Method, Field, StackTraceElement, etc. For example, if the element is created from a method annotated by @Provides, the declaring source of element would be the method itself.

public List<String> getModuleClassNames ()

Returns the class names of modules involved in creating this Element. The first element (index 0) is the class name of module that defined the element, and the last element is the class name of root module. In the cases where the class name is null an empty string is returned.

public List<Integer> getModuleConfigurePositionsInStackTrace ()

Returns the position of Module#configure(Binder) configure(Binder) method call in the stack trace for modules that their classes returned by getModuleClassNames(). For example, if the stack trace looks like the following:

0 - Binder.bind(), 1 - ModuleTwo.configure(), 2 - Binder.install(), 3 - ModuleOne.configure(), 4 - theRest().

1 and 3 are returned.

In the cases where stack trace is not available (i.e.,the stack trace was not collected), it returns an empty array.

public ElementSource getOriginalElementSource ()

Returns the ElementSource of the element this was created or copied from. If this was not created or copied from another element, returns null.

public StackTraceElement[] getStackTrace ()

Returns the sequence of method calls that ends at one of Binder bindXXX() methods and eventually defines the element. Note that getStackTrace() lists StackTraceElement StackTraceElements in reverse chronological order. The first element (index zero) is the last method call and the last element is the first method invocation. In the cases where stack trace is not available (i.e.,the stack trace was not collected), it returns an empty array.

public boolean isStackTraceRetained ()

Returns true if stack trace was collected.

public String toString ()

Since: API Level

Returns getDeclaringSource().toString() value.