public class LockAnnotatedTypeFactory extends org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>
However, there are a number of other annotations used in conjunction with these annotations to enforce proper locking.
| Modifier and Type | Field and Description |
|---|---|
protected AnnotationMirror |
GUARDEDBY
Annotation constants
|
protected AnnotationMirror |
GUARDEDBYBOTTOM
Annotation constants
|
protected AnnotationMirror |
GUARDEDBYUNKNOWN
Annotation constants
|
protected AnnotationMirror |
GUARDSATISFIED
Annotation constants
|
protected Class<? extends Annotation> |
javax_GuardedBy |
protected Class<? extends Annotation> |
jcip_GuardedBy |
protected AnnotationMirror |
LOCKHELD
Annotation constants
|
protected AnnotationMirror |
LOCKPOSSIBLYHELD
Annotation constants
|
static String |
NOT_EFFECTIVELY_FINAL
dependent type annotation error message for when the expression is not effectively final.
|
protected AnnotationMirror |
SIDEEFFECTFREE
Annotation constants
|
analysis, cfgVisualizer, defaults, dependentTypesHelper, emptyStore, FLOW_BY_DEFAULT, flowResult, flowResultAnalysisCaches, initializationStaticStore, initializationStore, methodInvocationStores, poly, regularExitStores, returnStatementStores, scannedClasses, transfer, treeAnnotator, typeAnnotatorchecker, elements, fromExpressionTreeCache, fromMemberTreeCache, fromTypeTreeCache, ignoreUninferredTypeArguments, loader, processingEnv, qualHierarchy, reflectionResolver, root, shouldCache, trees, typeArgumentInference, typeFormatter, typeHierarchy, types, typeVarSubstitutor, uid, visitorState| Constructor and Description |
|---|
LockAnnotatedTypeFactory(org.checkerframework.common.basetype.BaseTypeChecker checker) |
| Modifier and Type | Method and Description |
|---|---|
void |
addComputedTypeAnnotations(Element elt,
org.checkerframework.framework.type.AnnotatedTypeMirror type) |
void |
addComputedTypeAnnotations(Tree tree,
org.checkerframework.framework.type.AnnotatedTypeMirror type,
boolean useFlow) |
protected org.checkerframework.framework.util.dependenttypes.DependentTypesHelper |
createDependentTypesHelper() |
protected LockAnalysis |
createFlowAnalysis(List<org.checkerframework.javacutil.Pair<VariableElement,org.checkerframework.framework.flow.CFValue>> fieldValues) |
LockTransfer |
createFlowTransferFunction(org.checkerframework.framework.flow.CFAbstractAnalysis<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer> analysis) |
org.checkerframework.framework.type.QualifierHierarchy |
createQualifierHierarchy(org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory factory) |
protected Set<Class<? extends Annotation>> |
createSupportedTypeQualifiers() |
protected org.checkerframework.framework.type.treeannotator.TreeAnnotator |
createTreeAnnotator() |
org.checkerframework.javacutil.Pair<org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType,List<org.checkerframework.framework.type.AnnotatedTypeMirror>> |
methodFromUse(ExpressionTree tree,
ExecutableElement methodElt,
org.checkerframework.framework.type.AnnotatedTypeMirror receiverType) |
addCheckedCodeDefaults, addCheckedStandardDefaults, addComputedTypeAnnotations, addDefaultAnnotations, addTypeNameImplicit, addUncheckedCodeDefaults, addUncheckedStandardDefaults, analyze, applyInferredAnnotations, checkAndPerformFlowAnalysis, checkForDefaultQualifierInHierarchy, constructorFromUse, createAndInitQualifierDefaults, createCFGVisualizer, createQualifierDefaults, createQualifierPolymorphism, createTypeAnnotator, fromNewClass, getAnnotatedTypeLhs, getAnnotatedTypeLhsNoTypeVarDefault, getAnnotatedTypeRhsUnaryAssign, getAnnotatedTypeVarargsArray, getAnnotationFromJavaExpressionString, getAnnotationFromReceiver, getAnnotationMirrorFromJavaExpressionString, getCFGVisualizer, getDependentTypesHelper, getEmptyStore, getFinalLocalValues, getFirstNodeOfKindForTree, getInferredValueFor, getMethodReturnType, getMethodReturnType, getNodesForTree, getReceiverFromJavaExpressionString, getRegularExitStore, getResultingTypeOfConstructorMemberReference, getReturnStatementStores, getShouldDefaultTypeVarLocals, getSortedQualifierNames, getStoreAfter, getStoreAfter, getStoreAfter, getStoreBefore, getStoreBefore, getStoreBefore, getSupportedMonotonicTypeQualifiers, getTypeFactoryOfSubchecker, handleCFGViz, methodFromUse, performFlowAnalysis, postDirectSuperTypes, postInit, preProcessClassTree, setRoot, typeVariablesFromUseadaptGetClassReturnTypeToReceiver, addAliasedAnnotation, addAliasedAnnotation, addAliasedAnnotation, addAliasedAnnotation, addAliasedDeclAnnotation, addAnnotationFromFieldInvariant, addInheritedAnnotation, aliasedAnnotation, annotateInheritedFromClass, annotateInheritedFromClass, checkInvalidOptionsInferSignatures, createAnnotatedTypeFormatter, createAnnotationClassLoader, createAnnotationFormatter, createQualifierHierarchy, createQualifierHierarchy, createQualifierHierarchyFactory, createTypeArgumentInference, createTypeHierarchy, createTypeVariableSubstitutor, declarationFromElement, fromElement, fromElement, fromElement, getAnnotatedNullType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedType, getAnnotatedTypeFormatter, getAnnotatedTypeFromTypeTree, getAnnotationFormatter, getAnnotationMirror, getAnnotationWithMetaAnnotation, getBoxedType, getBundledTypeQualifiersWithoutPolyAll, getBundledTypeQualifiersWithPolyAll, getCacheSize, getContext, getCurrentClassTree, getCurrentClassType, getCurrentMethodReceiver, getDeclAnnotation, getDeclAnnotationNoAliases, getDeclAnnotations, getDeclAnnotationWithMetaAnnotation, getElementUtils, getEnclosingMethod, getEnclosingType, getFieldInvariantAnnotationTree, getFieldInvariantDeclarationAnnotations, getFieldInvariants, getFnInterfaceFromTree, getFnInterfaceFromTree, getImplicitReceiverType, getNarrowedPrimitive, getPath, getProcessingEnv, getQualifierHierarchy, getReceiverType, getSelfType, getStringType, getSupportedTypeQualifiers, getTreeUtils, getTypeArgumentInference, getTypeHierarchy, getTypeVarSubstitutor, getUnboxedType, getUninferredWildcardType, getVisitorState, getWholeProgramInference, initializeReflectionResolution, isAnyEnclosingThisDeref, isFromByteCode, isFromStubFile, isMostEnclosingThisDeref, isSupportedQualifier, isWithinConstructor, parseStubFiles, postAsMemberOf, postProcessClassTree, postTypeVarSubstitution, setPathHack, toAnnotatedType, toString, type, widenToUpperBoundpublic static final String NOT_EFFECTIVELY_FINAL
protected final AnnotationMirror LOCKHELD
protected final AnnotationMirror LOCKPOSSIBLYHELD
protected final AnnotationMirror SIDEEFFECTFREE
protected final AnnotationMirror GUARDEDBYUNKNOWN
protected final AnnotationMirror GUARDEDBY
protected final AnnotationMirror GUARDEDBYBOTTOM
protected final AnnotationMirror GUARDSATISFIED
protected final Class<? extends Annotation> jcip_GuardedBy
protected final Class<? extends Annotation> javax_GuardedBy
public LockAnnotatedTypeFactory(org.checkerframework.common.basetype.BaseTypeChecker checker)
protected org.checkerframework.framework.util.dependenttypes.DependentTypesHelper createDependentTypesHelper()
createDependentTypesHelper in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>protected Set<Class<? extends Annotation>> createSupportedTypeQualifiers()
createSupportedTypeQualifiers in class org.checkerframework.framework.type.AnnotatedTypeFactorypublic org.checkerframework.framework.type.QualifierHierarchy createQualifierHierarchy(org.checkerframework.framework.util.MultiGraphQualifierHierarchy.MultiGraphFactory factory)
createQualifierHierarchy in class org.checkerframework.framework.type.AnnotatedTypeFactoryprotected LockAnalysis createFlowAnalysis(List<org.checkerframework.javacutil.Pair<VariableElement,org.checkerframework.framework.flow.CFValue>> fieldValues)
createFlowAnalysis in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>public LockTransfer createFlowTransferFunction(org.checkerframework.framework.flow.CFAbstractAnalysis<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer> analysis)
createFlowTransferFunction in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>public org.checkerframework.javacutil.Pair<org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedExecutableType,List<org.checkerframework.framework.type.AnnotatedTypeMirror>> methodFromUse(ExpressionTree tree, ExecutableElement methodElt, org.checkerframework.framework.type.AnnotatedTypeMirror receiverType)
methodFromUse in class org.checkerframework.framework.type.AnnotatedTypeFactoryprotected org.checkerframework.framework.type.treeannotator.TreeAnnotator createTreeAnnotator()
createTreeAnnotator in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>public void addComputedTypeAnnotations(Element elt, org.checkerframework.framework.type.AnnotatedTypeMirror type)
addComputedTypeAnnotations in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>public void addComputedTypeAnnotations(Tree tree, org.checkerframework.framework.type.AnnotatedTypeMirror type, boolean useFlow)
addComputedTypeAnnotations in class org.checkerframework.framework.type.GenericAnnotatedTypeFactory<org.checkerframework.framework.flow.CFValue,LockStore,LockTransfer,LockAnalysis>