From 4560a81483a62bf676e4143b591a4082f4ce3619 Mon Sep 17 00:00:00 2001 From: nilswende Date: Fri, 23 Feb 2024 17:02:41 +0100 Subject: [PATCH] added DbmlParser as single point of entry --- README.md | 5 ++-- .../java/com/wn/dbml/compiler/DbmlParser.java | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/wn/dbml/compiler/DbmlParser.java diff --git a/README.md b/README.md index 4ec7513..bf97514 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,7 @@ Using Java 17. Example usage: ```java -import com.wn.dbml.compiler.lexer.LexerImpl; -import com.wn.dbml.compiler.parser.ParserImpl; +import com.wn.dbml.compiler.DbmlParser; import com.wn.dbml.model.Database; class Example { @@ -18,7 +17,7 @@ class Example { id integer }"""; // parse the dbml - Database database = new ParserImpl().parse(new LexerImpl(dbml)); + Database database = DbmlParser.parse(dbml); // process the database structure database.getSchemas().stream() .flatMap(schema -> schema.getTables().stream()) diff --git a/src/main/java/com/wn/dbml/compiler/DbmlParser.java b/src/main/java/com/wn/dbml/compiler/DbmlParser.java new file mode 100644 index 0000000..3c6bd69 --- /dev/null +++ b/src/main/java/com/wn/dbml/compiler/DbmlParser.java @@ -0,0 +1,30 @@ +package com.wn.dbml.compiler; + +import com.wn.dbml.compiler.lexer.LexerImpl; +import com.wn.dbml.compiler.parser.ParserImpl; +import com.wn.dbml.model.Database; + +import java.io.Reader; + +/** + * Creates a database representation using DBML. + */ +public final class DbmlParser { + /** + * Creates a database representation using a DBML string. + * + * @param dbml a DBML string + */ + public static Database parse(final String dbml) { + return new ParserImpl().parse(new LexerImpl(dbml)); + } + + /** + * Creates a database representation using a DBML reader. + * + * @param dbml a DBML reader + */ + public static Database parse(final Reader dbml) { + return new ParserImpl().parse(new LexerImpl(dbml)); + } +}