Top Description Fields Constructors Methods
com.google.inject.spi

public final Class ElementSource

extends Object
Class Inheritance
Imports
com.google.common.base.Preconditions, java.util.List, javax.annotation.Nullable

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 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), it also provides a reference to the original element source (getOriginalElementSource()).

Since
4.0

Field Summary

Modifier and TypeField and Description
pack-priv final Object
declaringSource

Refers to a single location in source code that causes the element creation.

pack-priv final ModuleSource
moduleSource

The source of module creates the element.

pack-priv final ElementSource
originalElementSource

The source of element that this element created from (if there is any), otherwise null.

pack-priv final ModuleAnnotatedMethodScanner
scanner

The scanner that created this binding (if it was created by a scanner).

pack-priv final boolean
trustedOriginalElementSource

Wheather the originalElementSource was set externaly (untrusted) or by Guice internals (trusted).

Constructor Summary

AccessConstructor and Description
pack-priv
ElementSource(ElementSource
The source of element that this element was created from (if there is any), otherwise null.
originalSource
,
boolean trustedOriginalSource, Object
the source (in)directly declared the element.
declaringSource
,
ModuleSource
the moduleSource when the element is bound
moduleSource
,
ModuleAnnotatedMethodScanner scanner)

Creates a new {@ElementSource } from the given parameters.

Method Summary

Modifier and TypeMethod and Description
public Object
getDeclaringSource()

Returns a single location in source code that defines the element.

public List<String>
getModuleClassNames()

Returns the class names of modules involved in creating this Element.

public ElementSource
getOriginalElementSource()

Returns the ElementSource of the element this was created or copied from.

public String
toString()

Overrides java.lang.Object.toString.

Returns getDeclaringSource().toString() value.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

declaringSourceback to summary
pack-priv final Object declaringSource

Refers to a single location in source code that causes the element creation. 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.

moduleSourceback to summary
pack-priv final ModuleSource moduleSource

The source of module creates the element.

originalElementSourceback to summary
pack-priv final ElementSource originalElementSource

The source of element that this element created from (if there is any), otherwise null.

scannerback to summary
pack-priv final ModuleAnnotatedMethodScanner scanner

The scanner that created this binding (if it was created by a scanner).

trustedOriginalElementSourceback to summary
pack-priv 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.

Constructor Detail

ElementSourceback to summary
pack-priv ElementSource(ElementSource originalSource, boolean trustedOriginalSource, Object declaringSource, ModuleSource moduleSource, ModuleAnnotatedMethodScanner scanner)

Creates a new {@ElementSource } from the given parameters.

Parameters
originalSource:ElementSource

The source of element that this element was created from (if there is any), otherwise null.

declaringSource:Object

the source (in)directly declared the element.

moduleSource:ModuleSource

the moduleSource when the element is bound

Method Detail

getDeclaringSourceback to summary
public Object getDeclaringSource()

Returns a single location in source code that defines the element. It can be any object such as java.lang.reflect.Constructor, java.lang.reflect.Method, java.lang.reflect.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.

getModuleClassNamesback to summary
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.

getOriginalElementSourceback to summary
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.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Returns getDeclaringSource().toString() value.

Returns:String

Doc from java.lang.Object.toString.

a string representation of the object

Annotations
@Override