def upgrade_string(self): ''' >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> print table.upgrade_string() public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + MyDotTable.TABLE_NAME); MyDotTable.onCreate(db); } >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True}]) >>> _ = table.indexs_create_string() >>> print table.upgrade_string() public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + MyDotTable.TABLE_NAME); db.execSQL("DROP INDEX IF EXISTS " + MY_DOT_COORD_X_INDEX_NAME); MyDotTable.onCreate(db); } ''' result = ' public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {\n' result += ' db.execSQL("DROP TABLE IF EXISTS " + %sTable.TABLE_NAME);\n' % ( camel_variable_name(self.name, upper=True)) for index_name in self.index_names: result += ' db.execSQL("DROP INDEX IF EXISTS " + %s);\n' % ( index_name) result += ' %sTable.onCreate(db);\n' % (camel_variable_name( self.name, upper=True)) result += ' }' return result
def from_cursor_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.from_cursor_string() @Override public void fromCursor(Cursor cursor, Context context) { this.id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID)); this.done = cursor.getInt(cursor.getColumnIndex(MyBookTable.MyBookColumns.DONE)) == 1; this.name = cursor.getString(cursor.getColumnIndex(MyBookTable.MyBookColumns.NAME)); this.addedAt = new Date(cursor.getLong(cursor.getColumnIndex(MyBookTable.MyBookColumns.ADDED_AT))); this.updatedAt = new Date(cursor.getLong(cursor.getColumnIndex(MyBookTable.MyBookColumns.UPDATED_AT))); this.context = context; } ''' import re result = ' @Override\n' result += ' public void fromCursor(Cursor cursor, Context context) {\n' result += ' this.id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));\n' for column in self.columns: result += ' this.%s = ' % (camel_variable_name(column['name'])) column_index = 'cursor.getColumnIndex(%sTable.%sColumns.%s)' % (camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper()) if re.match(r'varchar.*',column['type']) or column['type'] == 'text': result += 'cursor.getString(%s);\n' % (column_index) elif column['type'] == 'integer': result += 'cursor.getInt(%s);\n' % (column_index) elif column['type'] == 'timestamp': result += 'new Date(cursor.getLong(%s));\n' % (column_index) elif column['type'] == 'float': result += 'cursor.getFloat(%s);\n' % (column_index) elif column['type'] == 'boolean': result += 'cursor.getInt(%s) == 1;\n' % (column_index) result += ' this.context = context;\n' result += ' }' return result
def upgrade_string(self): """ >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> print table.upgrade_string() public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + MyDotTable.TABLE_NAME); MyDotTable.onCreate(db); } >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True}]) >>> _ = table.indexs_create_string() >>> print table.upgrade_string() public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + MyDotTable.TABLE_NAME); db.execSQL("DROP INDEX IF EXISTS " + MY_DOT_COORD_X_INDEX_NAME); MyDotTable.onCreate(db); } """ result = " public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {\n" result += ' db.execSQL("DROP TABLE IF EXISTS " + %sTable.TABLE_NAME);\n' % ( camel_variable_name(self.name, upper=True) ) for index_name in self.index_names: result += ' db.execSQL("DROP INDEX IF EXISTS " + %s);\n' % (index_name) result += " %sTable.onCreate(db);\n" % (camel_variable_name(self.name, upper=True)) result += " }" return result
def new_instance_from_cursor_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.new_instance_from_cursor_string() public static MyBook newInstance(Cursor cursor, Context context) { MyBook myBook = new MyBook(); myBook.fromCursor(cursor, context); return myBook; } ''' result = ' public static %s newInstance(Cursor cursor, Context context) {\n' % (camel_variable_name(self.table, upper=True)) result += ' %s %s = new %s();\n' % (camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=False), camel_variable_name(self.table, upper=True)) result += ' %s.fromCursor(cursor, context);\n' % (camel_variable_name(self.table, upper=False)) result += ' return %s;\n' % (camel_variable_name(self.table, upper=False)) result += ' }' return result
def __init__(self, package, prefix, db_name, tables): self.package = package self.prefix = prefix self.tables = tables self.db_name = db_name self.file_name = "%sOpenHelper.java" % (camel_variable_name(self.prefix, upper=True)) self.string_attrs = ["properties_string", "constructor_string", "create_string", "upgrade_string"]
def __init__(self, package, table, columns): self.package = package self.table = table self.columns = columns self.file_name = '%s.java' % (camel_variable_name(self.table, upper=True)) self.string_attrs = ['properties_string','constructor_string','get_id_string', 'from_cursor_string','to_content_values_string', 'new_instance_from_cursor_string']
def to_content_values_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.to_content_values_string() @Override public ContentValues toContentValues() { ContentValues values = new ContentValues(); values.put(MyBookTable.MyBookColumns.DONE, this.done); values.put(MyBookTable.MyBookColumns.NAME, this.name); values.put(MyBookTable.MyBookColumns.ADDED_AT, this.addedAt.getTime()); values.put(MyBookTable.MyBookColumns.UPDATED_AT, this.updatedAt.getTime()); return values; } ''' result = ' @Override\n' result += ' public ContentValues toContentValues() {\n' result += ' ContentValues values = new ContentValues();\n' for column in self.columns: if column['type'] == 'timestamp': result += ' values.put(%sTable.%sColumns.%s, this.%s.getTime());\n' % (camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper(), camel_variable_name(column['name'])) else: result += ' values.put(%sTable.%sColumns.%s, this.%s);\n' % (camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper(), camel_variable_name(column['name'])) result += ' return values;\n' result += ' }' return result
def properties_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'Album', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.properties_string() private Context context; private int id; private boolean done; private String name; private Date addedAt; private Date updatedAt; <BLANKLINE> ''' import re result = ' private Context context;\n' result += ' private int id;\n' for column in self.columns: var_type = 'Object' if re.match(r'varchar.*',column['type']) or column['type'] == 'text': var_type = 'String' elif column['type'] == 'integer': var_type = 'int' elif column['type'] == 'timestamp': var_type = 'Date' elif column['type'] == 'float': var_type = 'float' elif column['type'] == 'boolean': var_type = 'boolean' result += ' private %s %s;\n' % (var_type, camel_variable_name(column['name'])) return result
def properties_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'Album', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.properties_string() private Context context; private int id; private boolean done; private String name; private Date addedAt; private Date updatedAt; <BLANKLINE> ''' import re result = ' private Context context;\n' result += ' private int id;\n' for column in self.columns: var_type = 'Object' if re.match(r'varchar.*', column['type']) or column['type'] == 'text': var_type = 'String' elif column['type'] == 'integer': var_type = 'int' elif column['type'] == 'timestamp': var_type = 'Date' elif column['type'] == 'float' or column['type'] == 'real': var_type = 'float' elif column['type'] == 'boolean': var_type = 'boolean' result += ' private %s %s;\n' % ( var_type, camel_variable_name(column['name'])) return result
def __init__(self, package, prefix, tables): self.package = package self.prefix = prefix self.tables = tables self.file_name = '%sProvider.java' % (camel_variable_name(self.prefix, upper=True)) self.string_attrs = ['properties_string', 'create_string', 'get_type_string', 'insert_string', 'query_string', 'delete_string', 'update_string']
def insert_cases_string(self, table): result = '''\ case %sS: id = database.insert(%sTable.TABLE_NAME, null, values); getContext().getContentResolver().notifyChange(uri, null); return Uri.parse("content://" + AUTHORITY + "/" + %s_PATH + "/" + id);\n''' % \ (table.upper(), camel_variable_name(table, upper=True), table.upper()) return result
def delete_cases_string(self, table): result = '''\ case %sS: rowsDeleted = database.delete(%sTable.TABLE_NAME, selection, selectionArgs); break; case %s_ID: String %sId = uri.getLastPathSegment(); if (TextUtils.isEmpty(selection)) { rowsDeleted = database.delete(%sTable.TABLE_NAME, BaseColumns._ID + "=" + %sId, null); } else { rowsDeleted = database.delete(%sTable.TABLE_NAME, BaseColumns._ID + "=" + %sId + " AND " + selection, selectionArgs); } break;\n''' % ( table.upper(), camel_variable_name(table, upper=True), table.upper(), camel_variable_name(table), camel_variable_name(table, upper=True), camel_variable_name(table), camel_variable_name(table, upper=True), camel_variable_name(table) ) return result
def query_cases_string(self, table): result = '''\ case %sS: queryBuilder.setTables(%sTable.TABLE_NAME); break; case %s_ID: queryBuilder.setTables(%sTable.TABLE_NAME); queryBuilder.appendWhere(BaseColumns._ID + "=" + uri.getLastPathSegment()); break;\n''' % (table.upper(), camel_variable_name(table, upper=True), table.upper(), camel_variable_name(table, upper=True)) return result
def __init__(self, package, name, columns, indexes=None): self.package = package self.name = name self.columns = columns self.indexes = indexes self.index_create_string_vars = [] self.index_names = [] self.file_name = '%sTable.java' % (camel_variable_name(self.name, upper=True)) self.string_attrs = ['name_string', 'columns_class_string', 'indexs_create_string', 'create_string', 'upgrade_string']
def __init__(self, package, table, columns): self.package = package self.table = table self.columns = columns self.file_name = '%s.java' % (camel_variable_name(self.table, upper=True)) self.string_attrs = [ 'properties_string', 'constructor_string', 'get_id_string', 'from_cursor_string', 'to_content_values_string', 'new_instance_from_cursor_string' ]
def __init__(self, package, prefix, db_name, tables): self.package = package self.prefix = prefix self.tables = tables self.db_name = db_name self.file_name = '%sOpenHelper.java' % (camel_variable_name( self.prefix, upper=True)) self.string_attrs = [ 'properties_string', 'constructor_string', 'create_string', 'upgrade_string' ]
def class_string(self): """ >>> table = AndroidTable('th.ac.ku.sci.cs.android.sutee.demolistview', 'dot', []) >>> print table.class_string() public final class DotTable { %s } """ result = "public final class %sTable {\n" % (camel_variable_name(self.name, upper=True)) result += "%s\n" result += "}" return result
def constructor_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'Album', [{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.constructor_string() public Album() { super(); } ''' return '''\ public %s() { super(); }''' % (camel_variable_name(self.table, upper=True))
def constructor_string(self): """ >>> helper = AndroidOpenHelper('com.example.dot', 'test', 'test.db', ['user','group']) >>> print helper.constructor_string() public TestOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } """ result = " public %sOpenHelper(Context context) {\n" % (camel_variable_name(self.prefix, upper=True)) result += " super(context, DATABASE_NAME, null, DATABASE_VERSION);\n" result += " }" return result
def class_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'Album', [{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.class_string() public class Album extends ModelBase { %s } ''' result = 'public class %s extends ModelBase {\n' % (camel_variable_name(self.table, upper=True)) result += '%s\n' result += '}' return result
def to_content_values_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.to_content_values_string() @Override public ContentValues toContentValues() { ContentValues values = new ContentValues(); values.put(MyBookTable.MyBookColumns.DONE, this.done); values.put(MyBookTable.MyBookColumns.NAME, this.name); values.put(MyBookTable.MyBookColumns.ADDED_AT, this.addedAt.getTime()); values.put(MyBookTable.MyBookColumns.UPDATED_AT, this.updatedAt.getTime()); return values; } ''' result = ' @Override\n' result += ' public ContentValues toContentValues() {\n' result += ' ContentValues values = new ContentValues();\n' for column in self.columns: if column['type'] == 'timestamp': result += ' values.put(%sTable.%sColumns.%s, this.%s.getTime());\n' % ( camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper(), camel_variable_name(column['name'])) else: result += ' values.put(%sTable.%sColumns.%s, this.%s);\n' % ( camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper(), camel_variable_name(column['name'])) result += ' return values;\n' result += ' }' return result
def class_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'Album', [{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.class_string() public class Album extends ModelBase { %s } ''' result = 'public class %s extends ModelBase {\n' % ( camel_variable_name(self.table, upper=True)) result += '%s\n' result += '}' return result
def __init__(self, package, name, columns, indexes=None): self.package = package self.name = name self.columns = columns self.indexes = indexes self.index_create_string_vars = [] self.index_names = [] self.file_name = '%sTable.java' % (camel_variable_name(self.name, upper=True)) self.string_attrs = [ 'name_string', 'columns_class_string', 'indexs_create_string', 'create_string', 'upgrade_string' ]
def class_string(self): ''' >>> helper = AndroidOpenHelper('com.example.dot', 'Test', 'test.db', ['user','group']) >>> print helper.class_string() public class TestOpenHelper extends SQLiteOpenHelper { %s } ''' result = 'public class %sOpenHelper extends SQLiteOpenHelper {\n' % ( camel_variable_name(self.prefix, upper=True)) result += '%s\n' result += '}' return result
def class_string(self): ''' >>> table = AndroidTable('th.ac.ku.sci.cs.android.sutee.demolistview', 'dot', []) >>> print table.class_string() public final class DotTable { %s } ''' result = 'public final class %sTable {\n' % (camel_variable_name( self.name, upper=True)) result += '%s\n' result += '}' return result
def constructor_string(self): ''' >>> helper = AndroidOpenHelper('com.example.dot', 'test', 'test.db', ['user','group']) >>> print helper.constructor_string() public TestOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } ''' result = ' public %sOpenHelper(Context context) {\n' % ( camel_variable_name(self.prefix, upper=True)) result += ' super(context, DATABASE_NAME, null, DATABASE_VERSION);\n' result += ' }' return result
def from_cursor_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.from_cursor_string() @Override public void fromCursor(Cursor cursor, Context context) { this.id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID)); this.done = cursor.getInt(cursor.getColumnIndex(MyBookTable.MyBookColumns.DONE)) == 1; this.name = cursor.getString(cursor.getColumnIndex(MyBookTable.MyBookColumns.NAME)); this.addedAt = new Date(cursor.getLong(cursor.getColumnIndex(MyBookTable.MyBookColumns.ADDED_AT))); this.updatedAt = new Date(cursor.getLong(cursor.getColumnIndex(MyBookTable.MyBookColumns.UPDATED_AT))); this.context = context; } ''' import re result = ' @Override\n' result += ' public void fromCursor(Cursor cursor, Context context) {\n' result += ' this.id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));\n' for column in self.columns: result += ' this.%s = ' % (camel_variable_name( column['name'])) column_index = 'cursor.getColumnIndex(%sTable.%sColumns.%s)' % ( camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=True), column['name'].upper()) if re.match(r'varchar.*', column['type']) or column['type'] == 'text': result += 'cursor.getString(%s);\n' % (column_index) elif column['type'] == 'integer': result += 'cursor.getInt(%s);\n' % (column_index) elif column['type'] == 'timestamp': result += 'new Date(cursor.getLong(%s));\n' % (column_index) elif column['type'] == 'float' or column['type'] == 'real': result += 'cursor.getFloat(%s);\n' % (column_index) elif column['type'] == 'boolean': result += 'cursor.getInt(%s) == 1;\n' % (column_index) result += ' this.context = context;\n' result += ' }' return result
def class_string(self): """ >>> helper = AndroidOpenHelper('com.example.dot', 'Test', 'test.db', ['user','group']) >>> print helper.class_string() public class TestOpenHelper extends SQLiteOpenHelper { %s } """ result = "public class %sOpenHelper extends SQLiteOpenHelper {\n" % ( camel_variable_name(self.prefix, upper=True) ) result += "%s\n" result += "}" return result
def columns_class_string(self): ''' >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> print table.columns_class_string() public static class MyDotColumns implements BaseColumns { public static final String COORD_X = "coord_x"; public static final String COORD_Y = "coord_y"; } ''' result = ' public static class %sColumns implements BaseColumns {\n' % (camel_variable_name(self.name, upper=True)) for column in self.columns: result += ' public static final String ' + column['name'].upper() + ' = "' + column['name'] + '";\n' result += ' }' return result
def columns_class_string(self): ''' >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> print table.columns_class_string() public static class MyDotColumns implements BaseColumns { public static final String COORD_X = "coord_x"; public static final String COORD_Y = "coord_y"; } ''' result = ' public static class %sColumns implements BaseColumns {\n' % ( camel_variable_name(self.name, upper=True)) for column in self.columns: result += ' public static final String ' + column[ 'name'].upper() + ' = "' + column['name'] + '_column";\n' result += ' }' return result
def create_string(self): """ >>> helper = AndroidOpenHelper('com.example.dot', 'test', 'test.db', ['user','group']) >>> print helper.create_string() @Override public void onCreate(SQLiteDatabase db) { UserTable.onCreate(db); GroupTable.onCreate(db); } """ result = " @Override\n" result += " public void onCreate(SQLiteDatabase db) {\n" for table in self.tables: result += " %sTable.onCreate(db);\n" % (camel_variable_name(table, upper=True)) result += " }" return result
def upgrade_string(self): ''' >>> helper = AndroidOpenHelper('com.example.dot', 'test', 'test.db', ['user','group']) >>> print helper.upgrade_string() @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { UserTable.onUpgrade(db, oldVersion, newVersion); GroupTable.onUpgrade(db, oldVersion, newVersion); } ''' result = ' @Override\n' result += ' public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {\n' for table in self.tables: result += ' %sTable.onUpgrade(db, oldVersion, newVersion);\n' % ( camel_variable_name(table, upper=True)) result += ' }' return result
def new_instance_from_cursor_string(self): ''' >>> model_base = AndroidModelBase('com.touchsi.android.opd.model', 'my_book', [{"name": "done","type": "boolean"},{"name": "name","type": "varchar(100)","options": "unique"},{"name": "added_at","type": "timestamp","options": "default current_timestamp"},{"name": "updated_at","type": "timestamp","options": "default current_timestamp"}]) >>> print model_base.new_instance_from_cursor_string() public static MyBook newInstance(Cursor cursor, Context context) { MyBook myBook = new MyBook(); myBook.fromCursor(cursor, context); return myBook; } ''' result = ' public static %s newInstance(Cursor cursor, Context context) {\n' % ( camel_variable_name(self.table, upper=True)) result += ' %s %s = new %s();\n' % ( camel_variable_name(self.table, upper=True), camel_variable_name(self.table, upper=False), camel_variable_name(self.table, upper=True)) result += ' %s.fromCursor(cursor, context);\n' % ( camel_variable_name(self.table, upper=False)) result += ' return %s;\n' % (camel_variable_name(self.table, upper=False)) result += ' }' return result
def create_string(self): ''' >>> table = AndroidTable('com.example.android', 'dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + DotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(DotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(DotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); } >>> table = AndroidTable('com.example.android', 'dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + DotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(DotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(DotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); db.execSQL(INDEX_DOT_COORD_X_CREATE); } >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True},{'columns': ['coord_x', 'coord_y'], 'unique': False}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + MyDotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(MyDotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(MyDotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); db.execSQL(INDEX_MY_DOT_COORD_X_CREATE); db.execSQL(INDEX_MY_DOT_COORD_X_COORD_Y_CREATE); } ''' result = ' public static void onCreate(SQLiteDatabase db) {\n' result += ' StringBuilder sb = new StringBuilder();\n' result += ' sb.append("CREATE TABLE " + %sTable.TABLE_NAME + " (");\n' % ( camel_variable_name(self.name, upper=True)) result += ' sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, ");\n' for index, column in enumerate(self.columns): tails = '' if 'options' in column: tails += ' %s' % (column['options'].upper()) if index < len(self.columns) - 1: tails += ', ' result += ' sb.append(%sColumns.%s + " %s%s");\n' % ( camel_variable_name(self.name, upper=True), column['name'].upper(), column['type'].upper(), tails) result += ' sb.append(");");\n' result += ' db.execSQL(sb.toString());\n' for index_create_string_var in self.index_create_string_vars: result += ' db.execSQL(%s);\n' % (index_create_string_var) result += ' }' return result
def create_string(self): """ >>> table = AndroidTable('com.example.android', 'dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + DotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(DotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(DotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); } >>> table = AndroidTable('com.example.android', 'dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + DotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(DotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(DotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); db.execSQL(INDEX_DOT_COORD_X_CREATE); } >>> table = AndroidTable('com.example.android', 'my_dot', [{'name':'coord_x','type':'integer','options':'unique'}, {'name':'coord_y','type':'integer'}], [{'columns': ['coord_x'], 'unique': True},{'columns': ['coord_x', 'coord_y'], 'unique': False}]) >>> _ = table.indexs_create_string() >>> print table.create_string() public static void onCreate(SQLiteDatabase db) { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE " + MyDotTable.TABLE_NAME + " ("); sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, "); sb.append(MyDotColumns.COORD_X + " INTEGER UNIQUE, "); sb.append(MyDotColumns.COORD_Y + " INTEGER"); sb.append(");"); db.execSQL(sb.toString()); db.execSQL(INDEX_MY_DOT_COORD_X_CREATE); db.execSQL(INDEX_MY_DOT_COORD_X_COORD_Y_CREATE); } """ result = " public static void onCreate(SQLiteDatabase db) {\n" result += " StringBuilder sb = new StringBuilder();\n" result += ' sb.append("CREATE TABLE " + %sTable.TABLE_NAME + " (");\n' % ( camel_variable_name(self.name, upper=True) ) result += ' sb.append(BaseColumns._ID + " INTEGER PRIMARY KEY, ");\n' for index, column in enumerate(self.columns): tails = "" if "options" in column: tails += " %s" % (column["options"].upper()) if index < len(self.columns) - 1: tails += ", " result += ' sb.append(%sColumns.%s + " %s%s");\n' % ( camel_variable_name(self.name, upper=True), column["name"].upper(), column["type"].upper(), tails, ) result += ' sb.append(");");\n' result += " db.execSQL(sb.toString());\n" for index_create_string_var in self.index_create_string_vars: result += " db.execSQL(%s);\n" % (index_create_string_var) result += " }" return result