public final class ElementSource
extends java.lang.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 sequence of class names of modules
involved in the
element creation can be retrieved by getModuleClassNames()
. The order of the module
class names 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()
).
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.Object |
declaringSource
Refers to a single location in source code that causes the element creation.
|
(package private) ModuleSource |
moduleSource
The
source of module creates the element. |
(package private) ElementSource |
originalElementSource
The
source of element that this element created from (if there is any),
otherwise null . |
(package private) ModuleAnnotatedMethodScanner |
scanner
The scanner that created this binding (if it was created by a scanner).
|
(package private) boolean |
trustedOriginalElementSource
Wheather the originalElementSource was set externaly (untrusted) or by Guice internals
(trusted).
|
Constructor and Description |
---|
ElementSource(ElementSource originalSource,
boolean trustedOriginalSource,
java.lang.Object declaringSource,
ModuleSource moduleSource,
ModuleAnnotatedMethodScanner scanner)
Creates a new from the given parameters.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
getDeclaringSource()
Returns a single location in source code that defines the element.
|
java.util.List<java.lang.String> |
getModuleClassNames()
Returns the class names of modules involved in creating this
Element . |
ElementSource |
getOriginalElementSource()
Returns the
ElementSource of the element this was created or copied from. |
java.lang.String |
toString()
Returns
getDeclaringSource().toString() value. |
final ElementSource originalElementSource
source
of element that this element created from (if there is any),
otherwise null
.final boolean trustedOriginalElementSource
External code can set the originalElementSource to an arbitrary ElementSource via Binder.withSource(ElementSource), thereby spoofing the element origin.
final ModuleSource moduleSource
source
of module creates the element.final java.lang.Object declaringSource
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.final ModuleAnnotatedMethodScanner scanner
ElementSource(@Nullable ElementSource originalSource, boolean trustedOriginalSource, java.lang.Object declaringSource, ModuleSource moduleSource, ModuleAnnotatedMethodScanner scanner)
originalSource
- The source of element that this element was created from (if there is
any), otherwise null
.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
boundpublic 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 java.lang.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 java.util.List<java.lang.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 java.lang.String toString()
getDeclaringSource().toString()
value.toString
in class java.lang.Object