文字牧马人
Text-Wrangler应用程序以定制Antlr4 DSL指定的转换CSV数据。
用法
- 运行
mvn package生成Antlr4解析器 - 导入
main/java/resources/schema.sql中的mySQL模式 - 更新
main/java/resources/configuraiton.ini中的MySQL连接详细信息 - 从app.java开始,以进行有关如何使用库的演示
转换DSL
-
main/java/resources/transformations.dsl提供了用于转换的示例DSL - 描述DSL规则和语法的语法和Lexer可以建立在
srcmainantlr4orgluisaminiwrangler中
正则语法
- 支持Java Regex模式,可用于跳过数据
- 此外,通过映射的图案util支持糖图案
CSV解析器
- Antlr4也用于解析CSV
- 语法和Lexer描述CSV解析规则可以在
srcmainantlr4orgluisaminiwrangler中找到
CSV数据
- CSV数据样本在
main/java/resources/orders.csv中 - 该示例没有创建订单
- 不匹配所提供模式的数据值(如果一个)跳过
假设
测试
- App.Java运行并保存给定数据和DSL样本的订单。
依赖性
- Mariadb为JBDC驱动程序
- DSL和CSV处理和解析支持的ANTL4
- JUNIT进行单位测试
Javadoc
- Javadoc在文件夹“ Doc”下,其中包含其他用法,假设和实施说明
未来的工作
- 重构以抽象类型顺序(以// todo注释标记的源代码中给出的详细信息),使得可以轻松地重用其他类型的数据
- 创建一个从数据库中支持数据库架构创建数据库架构的实用程序(最喜欢带上QueryDSL之类的依赖项并将其扩展以适合目的)
- 扩展DSL语法/Lexer,以允许设置格式化器以表示stdout中的目标对象
- 扩展DSL语法/LEXER,以允许滤波器正则施加构建
- 例如,扩展以支持其他DB语言,例如支持Redis非常有趣
- 扩展以支持映射<>减少处理器,以便与BigData并行合作
- 扩展以支持反应流和发布者/订户
- 添加适当的junit测试套件,其中包括丰富的示例
- 提供适当的技术文档,例如课堂图和互动图