progressCallback.startTask(getString(
"Progress.7", table.toString())); //$NON-NLS-1$
Plugin plugins = context.getPlugins();
CommentGenerator commentGenerator = context.getCommentGenerator();
TopLevelClass topLevelClass = new TopLevelClass(introspectedTable
.getPrimaryKeyType());
topLevelClass.setVisibility(JavaVisibility.PUBLIC);
commentGenerator.addJavaFileComment(topLevelClass);
String rootClass = getRootClass();
if (rootClass != null) {
topLevelClass.setSuperClass(new FullyQualifiedJavaType(rootClass));
topLevelClass.addImportedType(topLevelClass.getSuperClass());
}
if (introspectedTable.isConstructorBased()) {
addParameterizedConstructor(topLevelClass);
if (!introspectedTable.isImmutable()) {
addDefaultConstructor(topLevelClass);
}
}
for (IntrospectedColumn introspectedColumn : introspectedTable
.getPrimaryKeyColumns()) {
if (RootClassInfo.getInstance(rootClass, warnings)
.containsProperty(introspectedColumn)) {
continue;
}
Field field = getJavaBeansField(introspectedColumn);
if (plugins.modelFieldGenerated(field, topLevelClass,
introspectedColumn, introspectedTable,
Plugin.ModelClassType.PRIMARY_KEY)) {
topLevelClass.addField(field);
topLevelClass.addImportedType(field.getType());
}
Method method = getJavaBeansGetter(introspectedColumn);
if (plugins.modelGetterMethodGenerated(method, topLevelClass,
introspectedColumn, introspectedTable,
Plugin.ModelClassType.PRIMARY_KEY)) {
topLevelClass.addMethod(method);
}
if (!introspectedTable.isImmutable()) {
method = getJavaBeansSetter(introspectedColumn);
if (plugins.modelSetterMethodGenerated(method, topLevelClass,
introspectedColumn, introspectedTable,
Plugin.ModelClassType.PRIMARY_KEY)) {
topLevelClass.addMethod(method);
}
}
}
List<CompilationUnit> answer = new ArrayList<CompilationUnit>();