public class AnalysisField extends Object implements jdk.vm.ci.meta.ResolvedJavaField, OriginalFieldProvider
Modifier and Type | Class and Description |
---|---|
static interface |
AnalysisField.AnalysisFieldObserver |
Modifier and Type | Field and Description |
---|---|
protected TypeState |
instanceFieldTypeState |
jdk.vm.ci.meta.ResolvedJavaField |
wrapped |
Constructor and Description |
---|
AnalysisField(AnalysisUniverse universe,
jdk.vm.ci.meta.ResolvedJavaField wrappedField) |
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
isAbstract, isConcrete, isFinalFlagSet, isInterface, isNative, isPackagePrivate, isPrivate, isProtected, isPublic, isStrict, isSynchronized, isTransient, isVolatile
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
getJavaField
public final jdk.vm.ci.meta.ResolvedJavaField wrapped
protected TypeState instanceFieldTypeState
public AnalysisField(AnalysisUniverse universe, jdk.vm.ci.meta.ResolvedJavaField wrappedField)
public void copyAccessInfos(AnalysisField other)
public void intersectAccessInfos(AnalysisField other)
public void clearAccessInfos()
public int getId()
public jdk.vm.ci.meta.JavaKind getStorageKind()
public TypeState getTypeState()
public TypeState getInstanceFieldTypeState()
public FieldTypeFlow getInitialInstanceFieldFlow()
public FieldTypeFlow getStaticFieldFlow()
public FieldSinkTypeFlow getInstanceFieldFlow()
public void cleanupAfterAnalysis()
public void registerAsAccessed()
public void registerAsRead(MethodTypeFlow method)
public void registerAsWritten(MethodTypeFlow method)
method
- The method where the field is written or null if the method is not known, e.g.
for an unsafe accessed field.public void registerAsUnsafeAccessed(AnalysisUniverse universe)
public void registerAsUnsafeAccessed(AnalysisUniverse universe, UnsafePartitionKind partitionKind)
public boolean isUnsafeAccessed()
public void registerAsJNIAccessed()
public boolean isJNIAccessed()
public void setUnsafeFrozenTypeState(boolean value)
public boolean hasUnsafeFrozenTypeState()
public Set<MethodTypeFlow> getReadBy()
public Set<MethodTypeFlow> getWrittenBy()
public boolean isAccessed()
public boolean isRead()
public boolean isWritten()
public void setCanBeNull(boolean canBeNull)
public boolean canBeNull()
public String getName()
getName
in interface jdk.vm.ci.meta.JavaField
public void setPosition(int newPosition)
public int getPosition()
public AnalysisType getType()
getType
in interface jdk.vm.ci.meta.JavaField
public int getModifiers()
getModifiers
in interface jdk.vm.ci.meta.ModifiersProvider
getModifiers
in interface jdk.vm.ci.meta.ResolvedJavaField
public int getOffset()
getOffset
in interface jdk.vm.ci.meta.ResolvedJavaField
public AnalysisType getDeclaringClass()
getDeclaringClass
in interface jdk.vm.ci.meta.JavaField
getDeclaringClass
in interface jdk.vm.ci.meta.ResolvedJavaField
public boolean isInternal()
isInternal
in interface jdk.vm.ci.meta.ResolvedJavaField
public boolean isSynthetic()
isSynthetic
in interface jdk.vm.ci.meta.ResolvedJavaField
public boolean isStatic()
isStatic
in interface jdk.vm.ci.meta.ModifiersProvider
public Annotation[] getAnnotations()
getAnnotations
in interface AnnotatedElement
public Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations
in interface AnnotatedElement
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
getAnnotation
in interface AnnotatedElement
public void markAsUsedInComparison()
public boolean isUsedInComparison()
public Field getJavaField()
OriginalFieldProvider
getJavaField
in interface OriginalFieldProvider
null
public void addAnalysisFieldObserver(AnalysisField.AnalysisFieldObserver observer)
public void removeAnalysisFieldObserver(AnalysisField.AnalysisFieldObserver observer)