int nocomment = 0;
StringBuilder nocomments = new StringBuilder();
for (int i = 0; i < classes.length; i++) {
if (!isEntity(classes[i])) continue;
ClassDoc classDoc = classes[i];
// generate table name
String tableName = getTableName(classDoc);
if (null == tableName) {
System.out.println("Cannot find tablenam for " + classDoc.qualifiedName());
continue;
}
// find table comment
String tableComment = processComment(classDoc.commentText());
if (null != tableComment) {
out.write("\ncomment on table " + tableName + " is '" + tableComment + "';\n");
} else {
nocomments.append(classDoc.qualifiedName()).append('\n');
nocomment++;
}
// process classDoc and it's superClassDoc
while (null != classDoc) {
if (classDoc.simpleTypeName().equals("Object")) break;
FieldDoc[] fields = classDoc.fields(false);
for (int j = 0; j < fields.length; j++) {
FieldDoc field = fields[j];
if (field.isTransient() || field.isStatic() || field.isEnum()) continue;
String simpleTypeName = field.type().simpleTypeName();
String columnComment = processComment(fields[j].commentText());
if (null != columnComment) {
if (collectionTypes.contains(simpleTypeName)) {
String joinTable = collectionTable(classDoc, tableName, field);
if (null != joinTable) {
out.write("\ncomment on table " + joinTable + " is '" + tableComment + "-"
+ columnComment + "';\n");
}
} else {
String columnName = getColumnName(fields[j]);
if (isEntity(field)) {
columnName = columnName + "_id";
columnComment = columnComment + "ID";
}
out.write("comment on column " + tableName + "." + columnName + " is '"
+ columnComment + "';\n");
}
} else {
if (null != fields[j].position() && fields[j].position().column() > 0) {
nocomments.append(classDoc.qualifiedName()).append('.').append(fields[j].name())
.append('\n');
nocomment++;
}
}
}
classDoc = (null == classDoc.superclassType()) ? null : classDoc.superclassType()
.asClassDoc();
}
}
// summary