Ejemplo n.º 1
0
def gen_entity_def(module, folder, settings):
    #mapper
    fname = os.path.join(folder, string.capitalize(module['name']) + 'Mappers.java')
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_entitys_'] = []
    for tbl in module['tables']:
        kwargs['_entitys_'].append(dbm.java_name(tbl))
    javagen.render_mapper(fname, **kwargs)
    kwargs.pop('_entitys_')
    #entity and service
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        kwargs['_tbi_'] = tbi
        fname = os.path.join(folder, tbi.entityName + '.java')
        kwargs['_cols_'] = tbi.columns
        kwargs['_pks_'] = tbi.pks
        #entity
        javagen.render_entity(fname, **kwargs)
        fname = os.path.join(folder, 'service', tbi.entityName + 'Tx.java')
        #db-tx
        javagen.render_tx(fname, **kwargs)
Ejemplo n.º 2
0
def gen_service_def(module, folder, test_folder, settings):
    #mapper
    fname = os.path.join(folder,
                         string.capitalize(module['name']) + 'Mappers.java')
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_entitys_'] = []
    for tbl in module['tables']:
        kwargs['_entitys_'].append(dbm.java_name(tbl))
    javagen.render_mapper(fname, **kwargs)
    kwargs.pop('_entitys_')
    #entity and service
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        kwargs['_tbi_'] = tbi
        fname = os.path.join(folder, tbi.entityName + '.java')
        kwargs['_cols_'] = tbi.columns
        kwargs['_pks_'] = tbi.pks
        #entity
        javagen.render_entity(fname, **kwargs)
        kwargs['_service_'] = tbi.entityName + 'Service'
        fname = os.path.join(folder, 'service',
                             tbi.entityName + 'Service.java')
        #service
        javagen.render_service(fname, **kwargs)
        fname = os.path.join(folder, 'service', tbi.entityName + 'Tx.java')
        #db-tx
        javagen.render_tx(fname, **kwargs)
        # service test
        fname = os.path.join(test_folder, tbi.entityName + 'ServiceTest.java')
        javagen.render_service_test(fname, **kwargs)
Ejemplo n.º 3
0
def gen_protobuf_impl(module, folder, settings):
    base_folder = os.path.join(settings['_root_'], '_Project_-Protobuf/src/main/')
    base_folder = format_line(base_folder, settings)
    base_folder = base_folder.replace('\\', '/')
    #mapper
    folder0 = os.path.join(folder, 'protobuf', module['name'])
    print folder0
    os.makedirs(folder0)
    outname = string.capitalize(module['name']) + 'Proto.proto'
    proto_file = os.path.join(base_folder, outname)
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    #entity and service
    _tbis = []
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        _tbis.append(tbi)
    kwargs['_tbis'] = _tbis
    #java out
    java_out = os.path.join(settings['_root_'], '_Project_-Protobuf/src/main/java')
    java_out = format_line(java_out, settings)
    cmd = 'protoc --proto_path=%s --java_out=%s %s' % (base_folder, java_out, proto_file)
    print cmd
    os.system(cmd)
    #render java wrapper
    for tbl in _tbis:
        kwargs['_tbi'] = tbl
        fnamet = os.path.join(folder0, 'P%sWrapper.java' % tbl.entityName)
        javagen.render_protobuf_wrapper(fnamet, **kwargs)
    #ios out
    cpp_out = os.path.join(settings['_root_'], '_Project_-Protobuf/src/main/ios/Models', module['name'])
    cpp_out = format_line(cpp_out, settings)
    os.makedirs(cpp_out)
    cmd = 'protoc --proto_path=%s --cpp_out=%s %s' % (base_folder, cpp_out, proto_file)
    print cmd
    os.system(cmd)
    #rename cpp to .hh and .mm for iOS
    fname = os.path.join(cpp_out, outname.replace('.proto', ''))
    print fname
    os.rename(fname + '.pb.h', fname + '.pb.hh')
    os.rename(fname + '.pb.cc', fname + '.pb.mm')
    with open(fname + '.pb.mm', 'r') as f:
        txt = f.read()
        txt = txt.replace('Proto.pb.h', 'Proto.pb.hh')
        with open(fname + '.pb.mm', 'w+') as fw:
            fw.write(txt)
    with open(fname + '.pb.hh', 'r') as f:
        txt = f.read()
        txt = txt.replace('Proto.pb.h', 'Proto.pb.hh')
        with open(fname + '.pb.hh', 'w+') as fw:
            fw.write(txt)
    #generate ios
    for tbl in _tbis:
        kwargs['_tbi'] = tbl
        fname = os.path.join(cpp_out, 'TS' + tbl.entityName)
        javagen.render_ios(fname, **kwargs)
Ejemplo n.º 4
0
def gen_ios_service(module, folder, settings):
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    #entity and service
    for tbl in module['tables']:
        name = 'TS' + dbm.java_name(tbl)
        tbi = dbm.get_table(module, tbl)
        kwargs['_tbi'] = tbi
        fname = os.path.join(folder, name) + 'Service'
        javagen.render_ios_service(fname, **kwargs)
Ejemplo n.º 5
0
def gen_ios_service(module, folder, settings):
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    #entity and service
    for tbl in module['tables']:
        name = 'TS' + dbm.java_name(tbl)
        tbi = dbm.get_table(module, tbl)
        kwargs['_tbi'] = tbi
        fname = os.path.join(folder, name) + 'Service'
        javagen.render_ios_service(fname, **kwargs)
Ejemplo n.º 6
0
def gen_controller_impl(module, folder, test_folder, has_view, prj, settings):
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_cprj_'] = prj
    cprefix = prj
    if prj == 'pc':
        cprefix = ''
    elif prj == 'mobile':
        cprefix = 'Mobile'
    else:
        cprefix = 'Admin'
    #entity and service
    for tbl in module['tables']:
        name = dbm.java_name(tbl)
        kwargs['_entity_'] = name
        kwargs['_entityL_'] = dbm.java_name(tbl, upperFirst=False)
        # table info
        tbi = dbm.get_table(module, tbl)
        kwargs['_mvcurl_'] = tbi.mvc_url()
        cols = []
        for c in tbi.columns:
            if c.isString:
                cols.append(c)
        kwargs['_cols_'] = cols
        kwargs['_tbi_'] = tbi
        # render controller
        fname = os.path.join(folder, cprefix + name + 'Controller.java')
        javagen.render_controller(fname, **kwargs)
        # render controller form
        fname = os.path.join(folder, cprefix + name + 'Form.java')
        javagen.render_form(fname, **kwargs)
        # gen controller test
        fname = os.path.join(test_folder, name + 'ControllerTest.java')
        javagen.render_controller_test(fname, **kwargs)
        # make view folder
        if not has_view:
            continue
        folder2 = os.path.join(settings['_root_'],
                               'Web/src/main/webapp/WEB-INF/views/')
        if prj == 'admin':
            folder2 = os.path.join(folder2, 'admin')
        folder2 = os.path.join(folder2, kwargs['_mvcurl_'])
        if not os.path.exists(folder2):
            os.makedirs(folder2)
        for name in ['add', 'view', 'list']:
            f = os.path.join(folder2, name + '.html')
            with open(f, 'w+') as fw:
                fw.write('')
Ejemplo n.º 7
0
def gen_controller_impl(module, folder, test_folder, has_view, prj, settings):
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_cprj_'] = prj
    cprefix = prj
    if prj == 'pc':
        cprefix = ''
    elif prj == 'mobile':
        cprefix = 'Mobile'
    else:
        cprefix = 'Admin'
    #entity and service
    for tbl in module['tables']:
        name = dbm.java_name(tbl)
        kwargs['_entity_'] = name
        kwargs['_entityL_'] = dbm.java_name(tbl, upperFirst=False)
        # table info
        tbi = dbm.get_table(module, tbl)
        kwargs['_mvcurl_'] = tbi.mvc_url()
        cols = []
        for c in tbi.columns:
            if c.isString:
                cols.append(c)
        kwargs['_cols_'] = cols
        kwargs['_tbi_'] = tbi
        # render controller
        fname = os.path.join(folder, cprefix + name + 'Controller.java')
        javagen.render_controller(fname, **kwargs)
        # render controller form
        fname = os.path.join(folder, cprefix + name + 'Form.java')
        javagen.render_form(fname, **kwargs)
        # gen controller test
        fname = os.path.join(test_folder, name + 'ControllerTest.java')
        javagen.render_controller_test(fname, **kwargs)
        # make view folder
        if not has_view:
            continue
        folder2 = os.path.join(settings['_root_'], 'Web/src/main/webapp/WEB-INF/views/')
        if prj == 'admin':
            folder2 = os.path.join(folder2, 'admin')
        folder2 = os.path.join(folder2, kwargs['_mvcurl_'])
        if not os.path.exists(folder2):
            os.makedirs(folder2)
        for name in ['add', 'view', 'list']:
            f = os.path.join(folder2, name + '.html')
            with open(f, 'w+') as fw:
                fw.write('')
Ejemplo n.º 8
0
def gen_table(module, settings):
    name = module.pop('name')
    conn = sqlite3.connect(name + ".db3")
    c = conn.cursor()
    #entity and service
    for db in module:
        tbs = module[db]
        m = {'db': db}
        dbm.open(m, settings)
        for tb in tbs:
            tbi = dbm.get_table(m, tb)
            sql = StringIO()
            sql.write(' create table IF NOT EXISTS %s (' % tb)
            for col in tbi.columns:
                sql.write('%s %s, ' % (col.name, col.sqlite3_type))
            sql.write('_ts_ timestamp')
            sql.write(')')
            sql = sql.getvalue()
            print sql
            c.execute(sql)
    conn.commit()
Ejemplo n.º 9
0
def gen_table(module, settings):
    name = module.pop('name')
    conn = sqlite3.connect(name + ".db3")
    c = conn.cursor()
    #entity and service
    for db in module:
        tbs = module[db]
        m = {'db': db}
        dbm.open(m, settings)
        for tb in tbs:
            tbi = dbm.get_table(m, tb)
            sql = StringIO()
            sql.write(' create table IF NOT EXISTS %s (' % tb)
            for col in tbi.columns:
                sql.write('%s %s, ' % (col.name, col.sqlite3_type))
            sql.write('_ts_ timestamp')
            sql.write(')')
            sql = sql.getvalue()
            print sql
            c.execute(sql)
    conn.commit()
Ejemplo n.º 10
0
def gen_protobuf_def(module, folder, settings):
    base_folder = os.path.join(settings['_root_'], '_Project_-Protobuf/src/main/')
    base_folder = format_line(base_folder, settings)
    if not os.path.exists(base_folder):
        os.makedirs(base_folder)
    #mapper
    outname = string.capitalize(module['name']) + 'Proto.proto'
    proto_file = os.path.join(base_folder, outname)
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_ms_'] = module['ref']
    print module['name'], kwargs['_ms_']
    #entity and service
    _tbis = []
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        _tbis.append(tbi)
    kwargs['_tbis'] = _tbis
    javagen.render_protobuf(proto_file, **kwargs)
Ejemplo n.º 11
0
def gen_protobuf_def(module, folder, settings):
    base_folder = os.path.join(settings['_root_'],
                               '_Project_-Protobuf/src/main/')
    base_folder = format_line(base_folder, settings)
    if not os.path.exists(base_folder):
        os.makedirs(base_folder)
    #mapper
    outname = string.capitalize(module['name']) + 'Proto.proto'
    proto_file = os.path.join(base_folder, outname)
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    kwargs['_ms_'] = module['ref']
    print module['name'], kwargs['_ms_']
    #entity and service
    _tbis = []
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        _tbis.append(tbi)
    kwargs['_tbis'] = _tbis
    javagen.render_protobuf(proto_file, **kwargs)
Ejemplo n.º 12
0
def gen_protobuf_impl(module, folder, settings):
    base_folder = os.path.join(settings['_root_'],
                               '_Project_-Protobuf/src/main/')
    base_folder = format_line(base_folder, settings)
    base_folder = base_folder.replace('\\', '/')
    #mapper
    folder0 = os.path.join(folder, 'protobuf', module['name'])
    print folder0
    os.makedirs(folder0)
    outname = string.capitalize(module['name']) + 'Proto.proto'
    proto_file = os.path.join(base_folder, outname)
    kwargs = {}
    kwargs.update(settings)
    kwargs['now'] = datetime.now()
    kwargs['_module_'] = module['name']
    kwargs['_moduleC_'] = string.capitalize(module['name'])
    #entity and service
    _tbis = []
    for tbl in module['tables']:
        tbi = dbm.get_table(module, tbl)
        _tbis.append(tbi)
    kwargs['_tbis'] = _tbis
    #java out
    java_out = os.path.join(settings['_root_'],
                            '_Project_-Protobuf/src/main/java')
    java_out = format_line(java_out, settings)
    cmd = 'protoc --proto_path=%s --java_out=%s %s' % (base_folder, java_out,
                                                       proto_file)
    print cmd
    os.system(cmd)
    #render java wrapper
    for tbl in _tbis:
        kwargs['_tbi'] = tbl
        fnamet = os.path.join(folder0, 'P%sWrapper.java' % tbl.entityName)
        javagen.render_protobuf_wrapper(fnamet, **kwargs)
    #ios out
    cpp_out = os.path.join(settings['_root_'],
                           '_Project_-Protobuf/src/main/ios/Models',
                           module['name'])
    cpp_out = format_line(cpp_out, settings)
    os.makedirs(cpp_out)
    cmd = 'protoc --proto_path=%s --cpp_out=%s %s' % (base_folder, cpp_out,
                                                      proto_file)
    print cmd
    os.system(cmd)
    #rename cpp to .hh and .mm for iOS
    fname = os.path.join(cpp_out, outname.replace('.proto', ''))
    print fname
    os.rename(fname + '.pb.h', fname + '.pb.hh')
    os.rename(fname + '.pb.cc', fname + '.pb.mm')
    with open(fname + '.pb.mm', 'r') as f:
        txt = f.read()
        txt = txt.replace('Proto.pb.h', 'Proto.pb.hh')
        with open(fname + '.pb.mm', 'w+') as fw:
            fw.write(txt)
    with open(fname + '.pb.hh', 'r') as f:
        txt = f.read()
        txt = txt.replace('Proto.pb.h', 'Proto.pb.hh')
        with open(fname + '.pb.hh', 'w+') as fw:
            fw.write(txt)
    #generate ios
    for tbl in _tbis:
        kwargs['_tbi'] = tbl
        fname = os.path.join(cpp_out, 'TS' + tbl.entityName)
        javagen.render_ios(fname, **kwargs)