コード例 #1
0
ファイル: table.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #2
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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
コード例 #3
0
ファイル: table.py プロジェクト: newubuntu/adbgen
 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
コード例 #4
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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
コード例 #5
0
ファイル: open_helper.py プロジェクト: newubuntu/adbgen
 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"]
コード例 #6
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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']
コード例 #7
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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
コード例 #8
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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
コード例 #9
0
    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
コード例 #10
0
ファイル: content_provider.py プロジェクト: 6LYTH3/adbgen
 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']
コード例 #11
0
ファイル: content_provider.py プロジェクト: soycake/adbgen
 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    
コード例 #12
0
ファイル: content_provider.py プロジェクト: soycake/adbgen
 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
コード例 #13
0
ファイル: content_provider.py プロジェクト: soycake/adbgen
 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    
コード例 #14
0
ファイル: table.py プロジェクト: soycake/adbgen
 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']
コード例 #15
0
 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'
     ]
コード例 #16
0
ファイル: open_helper.py プロジェクト: LuciferUltraM/adbgen
 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'
     ]
コード例 #17
0
ファイル: table.py プロジェクト: newubuntu/adbgen
 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
コード例 #18
0
 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))
コード例 #19
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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))
コード例 #20
0
ファイル: open_helper.py プロジェクト: newubuntu/adbgen
 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
コード例 #21
0
ファイル: model_base.py プロジェクト: soycake/adbgen
 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
コード例 #22
0
 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
コード例 #23
0
 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
コード例 #24
0
ファイル: table.py プロジェクト: LuciferUltraM/adbgen
 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'
     ]
コード例 #25
0
ファイル: open_helper.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #26
0
ファイル: table.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #27
0
ファイル: open_helper.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #28
0
 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
コード例 #29
0
ファイル: open_helper.py プロジェクト: newubuntu/adbgen
 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
コード例 #30
0
ファイル: table.py プロジェクト: soycake/adbgen
 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
コード例 #31
0
ファイル: table.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #32
0
ファイル: open_helper.py プロジェクト: newubuntu/adbgen
 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
コード例 #33
0
ファイル: open_helper.py プロジェクト: LuciferUltraM/adbgen
 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
コード例 #34
0
 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
コード例 #35
0
ファイル: table.py プロジェクト: LuciferUltraM/adbgen
    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
コード例 #36
0
ファイル: table.py プロジェクト: newubuntu/adbgen
    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