public TypeDeclaration createClassDeclaration(ICompilationUnit unit, String declaringType, CompilationUnitRewrite cuRewrite) throws CoreException {
AST ast= cuRewrite.getAST();
TypeDeclaration typeDeclaration= ast.newTypeDeclaration();
typeDeclaration.setName(ast.newSimpleName(fClassName));
List body= typeDeclaration.bodyDeclarations();
for (Iterator iter= fVariables.iterator(); iter.hasNext();) {
ParameterInfo pi= (ParameterInfo) iter.next();
if (isValidField(pi)) {
FieldDeclaration declaration= createField(pi, unit, cuRewrite);
body.add(declaration);
}
}
MethodDeclaration constructor= createConstructor(unit, declaringType, cuRewrite);
body.add(constructor);
for (Iterator iter= fVariables.iterator(); iter.hasNext();) {
ParameterInfo pi= (ParameterInfo) iter.next();
if (fCreateGetter && isValidField(pi)) {
ASTNode getter= createGetter(pi, declaringType, unit, cuRewrite);
body.add(getter);
}
if (fCreateSetter && isValidField(pi)) {
if (!Modifier.isFinal(pi.getOldBinding().getModifiers())) {
ASTNode setter= createSetter(pi, declaringType, unit, cuRewrite);
body.add(setter);
}
}
}
return typeDeclaration;
}