public final class ElementSource extends Object
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 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 OFF
, ONLY_FOR_DECLARING_SOURCE
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 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()
).
Modifier and Type | Method and Description |
---|---|
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
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. |
String |
toString()
Returns
getDeclaringSource().toString() value. |
public ElementSource getOriginalElementSource()
ElementSource
of the element this was created or copied from. If this was
not created or copied from another element, returns null
.public Object getDeclaringSource()
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()
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.public List<Integer> getModuleConfigurePositionsInStackTrace()
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 -1 for all module positions.
public StackTraceElement[] getStackTrace()
Binder
bindXXX()
methods and eventually defines the element. Note that getStackTrace()
lists 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.Copyright © 2006–2016 Google, Inc.. All rights reserved.