Package net.bytebuddy.implementation
Class LoadedTypeInitializer.ForStaticField
- java.lang.Object
-
- net.bytebuddy.implementation.LoadedTypeInitializer.ForStaticField
-
- All Implemented Interfaces:
java.io.Serializable
,LoadedTypeInitializer
- Enclosing interface:
- LoadedTypeInitializer
@Enhance public static class LoadedTypeInitializer.ForStaticField extends java.lang.Object implements LoadedTypeInitializer, java.io.Serializable
A type initializer for setting a value for a static field.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.LoadedTypeInitializer
LoadedTypeInitializer.Compound, LoadedTypeInitializer.ForStaticField, LoadedTypeInitializer.NoOp
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Object
accessControlContext
The access control context to use for loading classes ornull
if the access controller is not available on the current VM.private java.lang.String
fieldName
The name of the field.private static long
serialVersionUID
This class's serial version UID.private static java.lang.Object
STATIC_FIELD
A value for accessing a static field.private java.lang.Object
value
The value of the field.
-
Constructor Summary
Constructors Constructor Description ForStaticField(java.lang.String fieldName, java.lang.Object value)
Creates a newLoadedTypeInitializer
for setting a static field.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <T> T
doPrivileged(java.security.PrivilegedAction<T> action, java.lang.Object context)
A proxy forjava.security.AccessController#doPrivileged
that is activated if available.private static java.lang.Object
getContext()
A proxy forjava.security.AccessController#getContext
that is activated if available.boolean
isAlive()
Indicates if this initializer is alive and needs to be invoked.void
onLoad(java.lang.Class<?> type)
Callback that is invoked on the creation of an instrumented type.private java.lang.Object
readResolve()
Resolves this instance after deserialization to assure the access control context is set.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
This class's serial version UID.- See Also:
- Constant Field Values
-
STATIC_FIELD
private static final java.lang.Object STATIC_FIELD
A value for accessing a static field.
-
fieldName
private final java.lang.String fieldName
The name of the field.
-
value
private final java.lang.Object value
The value of the field.
-
accessControlContext
@ValueHandling(IGNORE) private final transient java.lang.Object accessControlContext
The access control context to use for loading classes ornull
if the access controller is not available on the current VM.
-
-
Constructor Detail
-
ForStaticField
public ForStaticField(java.lang.String fieldName, java.lang.Object value)
Creates a newLoadedTypeInitializer
for setting a static field.- Parameters:
fieldName
- the name of the field.value
- The value to be set.
-
-
Method Detail
-
getContext
@Enhance private static java.lang.Object getContext()
A proxy forjava.security.AccessController#getContext
that is activated if available.- Returns:
- The current access control context or
null
if the current VM does not support it.
-
doPrivileged
@Enhance private static <T> T doPrivileged(java.security.PrivilegedAction<T> action, java.lang.Object context)
A proxy forjava.security.AccessController#doPrivileged
that is activated if available.- Type Parameters:
T
- The type of the action's resolved value.- Parameters:
action
- The action to execute from a privileged context.context
- The access control context ornull
if the current VM does not support it.- Returns:
- The action's resolved value.
-
readResolve
private java.lang.Object readResolve()
Resolves this instance after deserialization to assure the access control context is set.- Returns:
- A resolved instance of this instance that includes an appropriate access control context.
-
onLoad
public void onLoad(java.lang.Class<?> type)
Callback that is invoked on the creation of an instrumented type. If the loaded type initializer is alive, this method should be implemented empty instead of throwing an exception.- Specified by:
onLoad
in interfaceLoadedTypeInitializer
- Parameters:
type
- The manifestation of the instrumented type.
-
isAlive
public boolean isAlive()
Indicates if this initializer is alive and needs to be invoked. This is only meant as a mark. A loaded type initializer that is not alive might still be called and must therefore not throw an exception but rather provide an empty implementation.- Specified by:
isAlive
in interfaceLoadedTypeInitializer
- Returns:
true
if this initializer is alive.
-
-