List<TableDescriptor.ColumnDescription> columnDescriptors =
new ArrayList<TableDescriptor.ColumnDescription>();
List<String> primaryKeys = new ArrayList<String>();
List<TableDescriptor.ColumnDescription> pks = new ArrayList<TableDescriptor.ColumnDescription>();
Column co;
PrimaryKey pk;
TableDescriptor.ColumnDescription cd;
/* TableDescriptor.FkDescription fkd;
String fkTableName;
ForeignKey fk;
*/ for (int i = 0; i < fields.length; i++) {
co = fields[i].getAnnotation(Column.class);
pk = fields[i].getAnnotation(PrimaryKey.class);
// fk = fields[i].getAnnotation(ForeignKey.class);
if (co != null) {
cd = new TableDescriptor.ColumnDescription();
cd.decimal = co.decimal();
cd.description = co.description();
cd.name = co.name();
cd.length = co.length();
cd.nullable = co.nullable();
cd.type = co.type();
cd.javaField = fields[i].getName();
cd.primaryKey = null != pk;
cd.autoIncrement = co.autoIncrement();
cd.defaultValue = co.defaultValue();
columnDescriptors.add(cd);
if (cd.primaryKey) {
pks.add(cd);
}
/*if (fk != null) {
table = fk.getClass().getAnnotation(Table.class);
fkTableName = null == table ? null : table.name();
if (null != fkTableName) {
fkd = new TableDescriptor.FkDescription();
fkd.foreignKeys = "(" + co.name();
fkd.references = fkTableName + " (";
}
}*/
}
if (pk != null) {
primaryKeys.add(co.name());
}
}
// set the columns
tableDescriptor.columns = columnDescriptors.toArray(
new TableDescriptor.ColumnDescription[columnDescriptors.size()]);