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.ObjectaccessControlContextThe access control context to use for loading classes ornullif the access controller is not available on the current VM.private java.lang.StringfieldNameThe name of the field.private static longserialVersionUIDThis class's serial version UID.private java.lang.ObjectvalueThe value of the field.
-
Constructor Summary
Constructors Constructor Description ForStaticField(java.lang.String fieldName, java.lang.Object value)Creates a newLoadedTypeInitializerfor setting a static field.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <T> TdoPrivileged(java.security.PrivilegedAction<T> action, java.lang.Object context)A proxy forjava.security.AccessController#doPrivilegedthat is activated if available.private static java.lang.ObjectgetContext()A proxy forjava.security.AccessController#getContextthat is activated if available.booleanisAlive()Indicates if this initializer is alive and needs to be invoked.voidonLoad(java.lang.Class<?> type)Callback that is invoked on the creation of an instrumented type.private java.lang.ObjectreadResolve()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
-
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
@MaybeNull @ValueHandling(IGNORE) private final transient java.lang.Object accessControlContext
The access control context to use for loading classes ornullif 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 newLoadedTypeInitializerfor setting a static field.- Parameters:
fieldName- the name of the field.value- The value to be set.
-
-
Method Detail
-
getContext
@MaybeNull @Enhance private static java.lang.Object getContext()
A proxy forjava.security.AccessController#getContextthat is activated if available.- Returns:
- The current access control context or
nullif the current VM does not support it.
-
doPrivileged
@Enhance private static <T> T doPrivileged(java.security.PrivilegedAction<T> action, @MaybeNull java.lang.Object context)
A proxy forjava.security.AccessController#doPrivilegedthat 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 ornullif 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:
onLoadin 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:
isAlivein interfaceLoadedTypeInitializer- Returns:
trueif this initializer is alive.
-
-