public abstract class AnalysisField extends AnalysisElement implements WrappedJavaField, OriginalFieldProvider, com.oracle.svm.util.AnnotationWrapper
| Modifier and Type | Class and Description |
|---|---|
static interface |
AnalysisField.AnalysisFieldObserver |
AnalysisElement.ElementReachableNotification, AnalysisElement.MethodOverrideReachableNotification, AnalysisElement.SubtypeReachableNotification| Modifier and Type | Field and Description |
|---|---|
protected AnalysisType |
declaringClass |
protected AnalysisType |
fieldType |
protected TypeState |
instanceFieldTypeState |
protected int |
position
Field's position in the list of declaring type's fields, including inherited fields.
|
ResolvedJavaField |
wrapped |
| Constructor and Description |
|---|
AnalysisField(AnalysisUniverse universe,
ResolvedJavaField wrappedField) |
isTriggered, notifyReachabilityCallback, notifyReachabilityCallbacks, registerReachabilityNotificationclone, equals, getClass, notify, notifyAll, wait, wait, waitgetAnnotation, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations, getIgnoredAnnotations, getInjectedAnnotations, getSecondaryAnnotationRoot, isAnnotationPresentgetAnnotationsByType, getDeclaredAnnotationsByTypegetJavaFieldpublic final ResolvedJavaField wrapped
protected TypeState instanceFieldTypeState
protected int position
protected final AnalysisType declaringClass
protected final AnalysisType fieldType
public AnalysisField(AnalysisUniverse universe, ResolvedJavaField wrappedField)
public ResolvedJavaField getWrapped()
getWrapped in interface WrappedElementgetWrapped in interface WrappedJavaFieldpublic void copyAccessInfos(AnalysisField other)
public void intersectAccessInfos(AnalysisField other)
public void clearAccessInfos()
public int getId()
public JavaKind getStorageKind()
public TypeState getTypeState()
public TypeState getInstanceFieldTypeState()
public FieldTypeFlow getInitialInstanceFieldFlow()
public FieldTypeFlow getStaticFieldFlow()
public ContextInsensitiveFieldTypeFlow getInstanceFieldFlow()
public void cleanupAfterAnalysis()
public boolean registerAsAccessed()
public boolean registerAsRead(AnalysisMethod method)
public boolean registerAsWritten(AnalysisMethod 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 markFolded()
public void registerAsUnsafeAccessed()
public void registerAsUnsafeAccessed(com.oracle.svm.util.UnsafePartitionKind partitionKind)
public boolean isUnsafeAccessed()
public void registerAsJNIAccessed()
public boolean isJNIAccessed()
public void setUnsafeFrozenTypeState(boolean value)
public boolean hasUnsafeFrozenTypeState()
public Set<AnalysisMethod> getReadBy()
public Set<AnalysisMethod> getWrittenBy()
public boolean isAccessed()
public boolean isRead()
public boolean isWritten()
public boolean isFolded()
public boolean isReachable()
isReachable in class AnalysisElementpublic void onReachable()
onReachable in class AnalysisElementpublic void setCanBeNull(boolean canBeNull)
public boolean canBeNull()
public String getName()
public void setPosition(int newPosition)
public int getPosition()
public AnalysisType getType()
public int getModifiers()
public int getOffset()
public AnalysisType getDeclaringClass()
public boolean isInternal()
public boolean isSynthetic()
public boolean isStatic()
public AnnotatedElement getAnnotationRoot()
getAnnotationRoot in interface WrappedElementgetAnnotationRoot in interface WrappedJavaFieldgetAnnotationRoot in interface com.oracle.svm.util.AnnotationWrapperpublic void markAsUsedInComparison()
public boolean isUsedInComparison()
public Field getJavaField()
OriginalFieldProvidergetJavaField in interface OriginalFieldProvidernullpublic void addAnalysisFieldObserver(AnalysisField.AnalysisFieldObserver observer)
public void removeAnalysisFieldObserver(AnalysisField.AnalysisFieldObserver observer)