package com.github.geequery.codegen;
import java.io.File;
import jef.accelerator.asm.ClassReader;
import jef.database.DataObject;
import jef.database.DbClient;
import jef.tools.ClassScanner;
import jef.tools.InitDataExporter;
import jef.tools.resource.IResource;
import com.github.geequery.orm.annotation.InitializeData;
public class DbExporter {
/**
* 将数据库中的数据全部作为初始化数据导出到src/main/resources下。
*
* @throws Exception
*/
public void doxport(DbClient client,String packageName, File output) throws Exception {
ClassScanner cs = new ClassScanner();
IResource[] entities = cs.scan(packageName);
InitDataExporter exporter = new InitDataExporter(client, output);
for (IResource clz : entities) {
ClassReader cl=new ClassReader(clz.getInputStream(),true);
Class<?> e = Class.forName(cl.getClassName());
if (DataObject.class.isAssignableFrom(e)) {
InitializeData data = e.getAnnotation(InitializeData.class);
if (data != null)
exporter.export(e);
}
}
}
}