Class ElementSource
- java.lang.Object
-
- com.google.inject.spi.ElementSource
-
public final class ElementSource extends java.lang.Object
Contains information about where and how anelement
was bound.The
declaring source
refers to a location in source code that defines the Guiceelement
. 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 bygetModuleClassNames()
. The order of the module class names is reverse chronological. The first module (index 0) is the module that installs theelement
. The last module is the root module.In order to support the cases where a Guice
element
is created from another Guiceelement
(original) (e.g., byElement.applyTo(com.google.inject.Binder)
), it also provides a reference to the original element source (getOriginalElementSource()
).- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.Object
declaringSource
Refers to a single location in source code that causes the element creation.(package private) ModuleSource
moduleSource
Thesource
of module creates the element.(package private) ElementSource
originalElementSource
Thesource
of element that this element created from (if there is any), otherwisenull
.(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 Summary
Constructors Constructor Description ElementSource(ElementSource originalSource, boolean trustedOriginalSource, java.lang.Object declaringSource, ModuleSource moduleSource, ModuleAnnotatedMethodScanner scanner)
Creates a new from the given parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 thisElement
.ElementSource
getOriginalElementSource()
Returns theElementSource
of the element this was created or copied from.java.lang.String
toString()
ReturnsgetDeclaringSource().toString()
value.
-
-
-
Field Detail
-
originalElementSource
final ElementSource originalElementSource
Thesource
of element that this element created from (if there is any), otherwisenull
.
-
trustedOriginalElementSource
final boolean trustedOriginalElementSource
Wheather the originalElementSource was set externaly (untrusted) or by Guice internals (trusted).External code can set the originalElementSource to an arbitrary ElementSource via Binder.withSource(ElementSource), thereby spoofing the element origin.
-
moduleSource
final ModuleSource moduleSource
Thesource
of module creates the element.
-
declaringSource
final java.lang.Object 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.
-
scanner
final ModuleAnnotatedMethodScanner scanner
The scanner that created this binding (if it was created by a scanner).
-
-
Constructor Detail
-
ElementSource
ElementSource(@Nullable ElementSource originalSource, boolean trustedOriginalSource, java.lang.Object declaringSource, ModuleSource moduleSource, ModuleAnnotatedMethodScanner scanner)
Creates a new from the given parameters.- Parameters:
originalSource
- The source of element that this element was 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 Detail
-
getOriginalElementSource
public ElementSource getOriginalElementSource()
Returns theElementSource
of the element this was created or copied from. If this was not created or copied from another element, returnsnull
.
-
getDeclaringSource
public java.lang.Object 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
public java.util.List<java.lang.String> 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.
-
toString
public java.lang.String toString()
ReturnsgetDeclaringSource().toString()
value.- Overrides:
toString
in classjava.lang.Object
-
-