テキストラングラー
オーダーメイドのANTLR4 DSLで指定されているCSVデータを変換するテキスト-Wranglerアプリ。
使用法
mvn packageを実行して、ANTLR4パーサーを生成します- MySQLスキーマを
main/java/resources/schema.sqlにインポートします - mysql接続の詳細を
main/java/resources/configuraiton.iniで更新します - ライブラリの使用方法に関するデモンストレーションについては、app.javaで開始します
変換DSL
- 変換用のサンプルDSLは
main/java/resources/transformations.dslで提供されます - DSLルールと構文を説明する文法とlexerは
srcmainantlr4orgluisaminiwranglerに設立できます
正規表現文法
- Java Regexパターンがサポートされています。これはデータをスキップするために使用できます
- さらに、砂糖パターンはマッピングされたパターンを使用してサポートされています
CSVパーサー
- ANTLR4は、CSVの解析にも使用されます
- 文法とレクサーの説明CSV解析ルールは
srcmainantlr4orgluisaminiwranglerにあります
CSVデータ
- CSVデータサンプルは
main/java/resources/orders.csvにあります - このサンプルから注文は作成されません
- 提供されたパターン(1つの場合)と一致しないデータ値がスキップされます
仮定
- CSVデータには、フィールド名のヘッダー行があります
テスト
- App.javaは、指定されたデータとDSLサンプルの注文を実行および保存します。
依存関係
- JBDCドライバーとしてのMariadb
- DSLおよびCSV処理および解析サポート用ANTLR4
- ユニットテスト用のJunit
Javadoc
- Javadocはフォルダー「Doc」の下にあり、追加の使用法、仮定、実装ノートが含まれています
将来の仕事
- タイプの順序を抽象化するようにリファクタリング(// todoコメントでマークされたソースコードに記載されている詳細)、他のタイプのデータを簡単に再利用できるようにする
- データベーススキーマの作成をサポートするユーティリティを作成するDSLまたはデータベースからのインポートスキーマからの作成(QueryDSLなどの依存関係をもたらすために、ほとんどの概して、目的に適合するように拡張します)
- DSL文法/lexerを拡張して、stdoutでターゲットオブジェクトを表現するためのフォーマッタを設定できるようにします
- DSL文法/lexerを拡張して、ユーザーがそのフィルターに一致するオブジェクトのみを解析できるフィルターの正規表現構築を許可します
- たとえば、他のDB言語をサポートするために拡張すると、Redisをサポートすることは非常に興味深いでしょう
- マップをサポートするために拡張<> BigDataと並行して作業することを可能にするためにプロセッサを削減します
- リアクティブストリームと出版社/購読者をサポートするために拡張します
- 豊富な一連の例を備えた適切なJunitテストスイートを追加する
- クラス図や相互作用図などの適切な技術文書を提供する