Program program = parser.createAST(new NullProgressMonitor());
// program.recordModifications();
// AST ast = program.getAST();
ISourceRange range = type.getSourceRange();
ASTNode node = program.getElementAt(range.getOffset());
if (!(node instanceof ClassDeclaration)) {
return ;
}
char indentChar = FormatterUtils
.getFormatterCommonPrferences().getIndentationChar(document);
String indent = String.valueOf(indentChar);
ClassDeclaration clazz = (ClassDeclaration) node;
Block body = clazz.getBody();
List<Statement> bodyStatements = body.statements();
int end = bodyStatements.get(bodyStatements.size()-1).getEnd();
if (insertFirst) {
end = bodyStatements.get(0).getStart() - 1;
} else if (insertAfter != null) {
boolean found = false;
for (IMethod method : type.getMethods()) {
if (method == insertAfter) {
ISourceRange r = method.getSourceRange();
end = r.getOffset() + r.getLength();
found = true;
}
}
if (!found) {
for (IField field : type.getFields()) {
ISourceRange r = field.getSourceRange();
end = r.getOffset() + r.getLength() + 1;
}
}
}
lineDelim = TextUtilities.getDefaultLineDelimiter(document);