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)
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)
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)
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)
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('')
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()
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)