Class ReceiverInsertion
java.lang.Object
org.checkerframework.afu.annotator.find.Insertion
org.checkerframework.afu.annotator.find.TypedInsertion
org.checkerframework.afu.annotator.find.ReceiverInsertion
An insertion for a method receiver. This supports inserting an annotation on an existing receiver
and creating a new (annotated) receiver if none are present.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.checkerframework.afu.annotator.find.Insertion
Insertion.Kind
-
Field Summary
Fields inherited from class org.checkerframework.afu.annotator.find.TypedInsertion
annotationsOnly, innerTypeInsertions, type
Fields inherited from class org.checkerframework.afu.annotator.find.Insertion
alwaysQualify, packageNames
-
Constructor Summary
ConstructorsConstructorDescriptionReceiverInsertion
(DeclaredType type, Criteria criteria, List<Insertion> innerTypeInsertions) Construct a ReceiverInsertion. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
addLeadingSpace
(boolean gotSeparateLine, int pos, char precedingChar) Indicates if a preceding space should be added to this insertion.protected boolean
addTrailingSpace
(boolean gotSeparateLine) Indicates if a trailing space should be added to this insertion.getKind()
Gets the kind of this insertion.protected String
getText
(boolean abbreviate) Gets the insertion text.void
setAddComma
(boolean addComma) Iftrue
a comma will be added at the end of the receiver.void
setQualifyType
(boolean qualifyThis) Iftrue
, qualifythis
with the name of the superclass.Methods inherited from class org.checkerframework.afu.annotator.find.TypedInsertion
getBaseType, getBaseType, getInnerTypeInsertions, getType, setAnnotationsOnly, setType
Methods inherited from class org.checkerframework.afu.annotator.find.Insertion
collectionToString, decorateType, decorateType, getAlwaysQualify, getCriteria, getPackageNames, getText, getText, isInserted, isSeparateLine, removePackage, setAlwaysQualify, setInserted, toString, toStringWithoutClass, typeToString
-
Constructor Details
-
ReceiverInsertion
Construct a ReceiverInsertion.If the receiver parameter already exists in the method declaration, then pass a DeclaredType whose name is the empty String. This will only insert an annotation on the existing receiver.
To insert the annotation and the receiver (for example,
@Anno Type this
) the DeclaredType's name should be set to the type to insert. This can either be done before calling this constructor, or by modifying the return value ofTypedInsertion.getType()
.A comma will not be added to the end of the receiver. In the case that there is a parameter following the inserted receiver pass
true
tosetAddComma(boolean)
to add a comma to the end of the receiver.- Parameters:
type
- the type to use when inserting the receivercriteria
- where to insert the textinnerTypeInsertions
- the inner types to go on this receiver
-
-
Method Details
-
setAddComma
public void setAddComma(boolean addComma) Iftrue
a comma will be added at the end of the receiver. This will only happen if a receiver is inserted (seeReceiverInsertion(DeclaredType, Criteria, List)
for a description of when a receiver is inserted). This is useful if the method already has one or more parameters. -
setQualifyType
public void setQualifyType(boolean qualifyThis) Iftrue
, qualifythis
with the name of the superclass. This will only happen if a receiver is inserted (seeReceiverInsertion(DeclaredType, Criteria, List)
for a description of when a receiver is inserted). This is useful for inner class constructors. -
getText
Description copied from class:Insertion
Gets the insertion text.- Specified by:
getText
in classInsertion
- Parameters:
abbreviate
- if true, the package name will be removed from the annotations. The package name can be retrieved again by calling theInsertion.getPackageNames()
method.- Returns:
- the text to insert
-
addLeadingSpace
protected boolean addLeadingSpace(boolean gotSeparateLine, int pos, char precedingChar) Description copied from class:Insertion
Indicates if a preceding space should be added to this insertion. Subclasses may override this method for custom leading space rules.- Overrides:
addLeadingSpace
in classInsertion
- Parameters:
gotSeparateLine
-true
if this insertion is actually added on a separate linepos
- the source position where this insertion will be insertedprecedingChar
- the character directly preceding where this insertion will be inserted. This value will be ignored ifpos
is 0.- Returns:
true
if a leading space should be added,false
otherwise
-
addTrailingSpace
protected boolean addTrailingSpace(boolean gotSeparateLine) Description copied from class:Insertion
Indicates if a trailing space should be added to this insertion. Subclasses may override this method for custom trailing space rules.- Overrides:
addTrailingSpace
in classInsertion
- Parameters:
gotSeparateLine
-true
if this insertion is actually added on a separate line- Returns:
- true if a trailing space should be added,
false
otherwise
-
getKind
Description copied from class:Insertion
Gets the kind of this insertion.
-