Class ElementSource
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(com.google.inject.Binder)
), it also provides a
reference to the original element source (getOriginalElementSource()
).
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final Object
Refers to a single location in source code that causes the element creation.(package private) final ModuleSource
Thesource
of module creates the element.(package private) final ElementSource
Thesource
of element that this element created from (if there is any), otherwisenull
.(package private) final StackTraceElements.InMemoryStackTraceElement[]
The partial call stack that starts at the last moduleconfigure(Binder)
call. -
Constructor Summary
ConstructorsConstructorDescriptionElementSource
(ElementSource originalSource, Object declaringSource, ModuleSource moduleSource, StackTraceElement[] partialCallStack) Creates a new from the given parameters. -
Method Summary
Modifier and TypeMethodDescriptionReturns a single location in source code that defines the element.Returns the class names of modules involved in creating thisElement
.Returns the position ofconfigure(Binder)
method call in thestack trace
for modules that their classes returned bygetModuleClassNames()
.Returns theElementSource
of the element this was created or copied from.Returns the sequence of method calls that ends at one ofBinder
bindXXX()
methods and eventually defines the element.toString()
ReturnsgetDeclaringSource().toString()
value.
-
Field Details
-
originalElementSource
Thesource
of element that this element created from (if there is any), otherwisenull
. -
moduleSource
Thesource
of module creates the element. -
partialCallStack
The partial call stack that starts at the last moduleconfigure(Binder)
call. The value is empty if stack trace collection is off. -
declaringSource
Refers to a single location in source code that causes the element creation. It can be any object such asConstructor
,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.
-
-
Constructor Details
-
ElementSource
ElementSource(ElementSource originalSource, Object declaringSource, ModuleSource moduleSource, StackTraceElement[] partialCallStack) Creates a new from the given parameters.- Parameters:
originalElementSource
- The source of element that this element created from (if there is any), otherwisenull
.declaringSource
- the source (in)directly declared the element.moduleSource
- the moduleSource when the element is boundpartialCallStack
- the partial call stack from the top module to where the element is bound
-
-
Method Details
-
getOriginalElementSource
Returns theElementSource
of the element this was created or copied from. If this was not created or copied from another element, returnsnull
. -
getDeclaringSource
Returns a single location in source code that defines the element. It can be any object such asConstructor
,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. -
getModuleClassNames
Returns the class names of modules involved in creating thisElement
. 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. -
getModuleConfigurePositionsInStackTrace
Returns the position ofconfigure(Binder)
method call in thestack trace
for modules that their classes returned bygetModuleClassNames()
. For example, if the stack trace looks like the following:Binder.bind()
ModuleTwo.configure()
Binder.install()
ModuleOne.configure()
- {@code theRest(). </ol> <p>1 and 3 are returned. <p>In the cases where stack trace is not available (i.e., the stack trace was not collected), it returns -1 for all module positions.
-
getStackTrace
Returns the sequence of method calls that ends at one ofBinder
bindXXX()
methods and eventually defines the element. Note thatgetStackTrace()
listsStackTraceElements
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. -
toString
ReturnsgetDeclaringSource().toString()
value.
-