package com.m.support.sqlite.util;
import java.util.Collection;
import com.m.support.sqlite.property.Id;
import com.m.support.sqlite.property.Property;
import com.m.support.sqlite.property.TableInfo;
public class SqlBuilder {
public static String getCreatTableSQL(TableInfo tableInfoUtils, Class<?> clazz) {
TableInfo table = tableInfoUtils.get(clazz);
Id id = table.getId();
StringBuffer strSQL = new StringBuffer();
strSQL.append("CREATE TABLE IF NOT EXISTS ");
strSQL.append(table.getTableName());
strSQL.append(" ( ");
// Class<?> primaryClazz = id.getDataType();
// if (primaryClazz == int.class || primaryClazz == Integer.class)
// strSQL.append("\"").append(id.getField().getName()).append("\" ").append("INTEGER PRIMARY KEY AUTOINCREMENT,");
// else
strSQL.append(" ").append(" _id ").append(" ").append(" INTEGER PRIMARY KEY AUTOINCREMENT ,");
strSQL.append(" ").append(FieldUtils.getColumnNameByField(id.getField())).append(" ").append("TEXT NOT NULL ,");
Collection<Property> propertys = table.propertyMap.values();
for (Property property : propertys) {
strSQL.append(" ").append(property.getColumn());
strSQL.append(" ,");
}
strSQL.append(" ").append(FieldUtils.OWNER).append(" text ").append(" ,");
strSQL.append(" ").append(FieldUtils.KEY).append(" text ").append(" ,");
strSQL.append(" ").append(FieldUtils.CREATEAT).append(" INTEGER ").append(" ,");
strSQL.deleteCharAt(strSQL.length() - 1);
strSQL.append(" )");
return strSQL.toString();
}
}