}
}
boolean isAnnotationsProperty = isVarargsAnnotationsProperty
|| node instanceof AnnotatableType && property == ((AnnotatableType) node).getAnnotationsProperty();
Prefix formatterPrefix;
if (property == SingleVariableDeclaration.MODIFIERS2_PROPERTY ||
property == TypeParameter.MODIFIERS_PROPERTY || isAnnotationsProperty)
formatterPrefix= this.formatter.PARAM_ANNOTATION_SEPARATION;
else
formatterPrefix= this.formatter.ANNOTATION_SEPARATION;
int endPos= new ModifierRewriter(formatterPrefix).rewriteList(node, property, pos, keyword, " "); //$NON-NLS-1$
try {
int nextPos= getScanner().getNextStartOffset(endPos, false);
RewriteEvent lastChild = children[children.length - 1];
boolean lastUnchanged= lastChild.getChangeKind() != RewriteEvent.UNCHANGED;
if (isAllRemove) {
doTextRemove(endPos, nextPos - endPos, getEditGroup(lastChild));
return nextPos;
} else if ((isAllInsert || (nextPos == endPos && lastUnchanged)) // see bug 165654
&& !isVarargsAnnotationsProperty) {
String separator;
if (lastChild.getNewValue() instanceof Annotation) {
separator= formatterPrefix.getPrefix(getIndent(pos));
} else {
separator= String.valueOf(' ');
}
doTextInsert(endPos, separator, getEditGroup(lastChild));
}