package com.test.freemarker.demo;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Element;
import com.test.freemarker.generator.GeneratorJavaCode;
import com.test.freemarker.util.CommonUtil;
import com.test.freemarker.xml.ParserXml;
public class GeneratorTables {
@SuppressWarnings("unchecked")
public void generaJavaByXml(String path) {
try {
ParserXml parser = new ParserXml();
List<File> files = parser.loadFiles(path);
for(File file : files) {
String filePath = file.getPath();
List<Element> nodesList = parser.getSecondList(filePath, "tables");
String outPath = "";
Map<String, Object> data = new HashMap<String, Object>();
data.put("packageName", CommonUtil.TABLES_PACKAGE);
for(Element ele : nodesList) {
String className = ele.attributeValue("id");
data.put("className", className);
Element fields = ele.element("fields");
if(fields == null) {
continue;
}
List<Element> fieldList = fields.elements("field");
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
// String formatStr = "";
for(Element e : fieldList) {
String name = e.attributeValue("name");
String len = e.attributeValue("len");
// formatStr += "%-" + len + "s";
String type = parser.getJavaType(e.attributeValue("datatype"));
if(type == null) {
System.out.println("file path: " + filePath + "\nid: " + className);
}
Map<String, String> map = new HashMap<String, String>();
map.put("name", name);
map.put("type", type);
map.put("len", len);
list.add(map);
}
// data.put("formatStr", formatStr);
data.put("list", list);
GeneratorJavaCode generator = new GeneratorJavaCode();
outPath = CommonUtil.OUTPUT_PATH + File.separator + CommonUtil.packageToPath(CommonUtil.TABLES_PACKAGE)
+ File.separator + className + ".java";
generator.grenerate(CommonUtil.TABLES_TEMPLATE_PATH, outPath, data, filePath);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
根据XML生成JAVA类-freemarker
4星 · 超过85%的资源 需积分: 49 132 浏览量
2013-08-10
16:54:13
上传
评论 5
收藏 2.28MB ZIP 举报
沭灬望月
- 粉丝: 4
- 资源: 5
最新资源
- 通过使用selenium库实现淘宝自动下单及付款操作
- aarch64-linux-gnu环境opencv4.5.5交叉编译库
- YOLO 数据集:X影像下的人体骨折识别+检测(2类)【包含划分好的数据集、类别class文件、数据可视化脚本】
- av1analyzer
- 华为 B610-4e JFFS2 恢复文件 用于升降级后变英文 红版等故障修复方法案例
- python实现的端午节庆祝程序(知识问答、祝福语)含源码、文档说明运行截图
- Python中自动识别和定位图像中的物体.zip
- docker容器化部署minio并实现主从同步,minio+mc工具实现
- “人力资源+大数据+薪酬报告+涨薪调薪”
- “人力资源+大数据+薪酬报告+涨薪调薪”
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页