From c7370bdc8affcd921417e61bfeea801f046b6ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=95=E5=B1=B1?= Date: Mon, 23 Dec 2024 10:29:47 +0800 Subject: [PATCH 1/3] fix sqlite not found error in CI --- .github/workflows/godel_build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/godel_build.yml b/.github/workflows/godel_build.yml index 4c7fa9fa..e058dbad 100644 --- a/.github/workflows/godel_build.yml +++ b/.github/workflows/godel_build.yml @@ -47,6 +47,9 @@ jobs: run: | git config --global user.name "$(git log -n 1 --pretty=format:%an)" git config --global user.email "$(git log -n 1 --pretty=format:%ae)" + - name: Install Package + run: | + apt-get install sqlite3 libsqlite3-dev - name: Build run: | cd godel-script From c4f905dc2e54bfcd94a1c4f59b801f7563f98f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=95=E5=B1=B1?= Date: Mon, 23 Dec 2024 10:31:17 +0800 Subject: [PATCH 2/3] enable manually running workflow --- .github/workflows/godel_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/godel_build.yml b/.github/workflows/godel_build.yml index e058dbad..03dd8779 100644 --- a/.github/workflows/godel_build.yml +++ b/.github/workflows/godel_build.yml @@ -8,6 +8,7 @@ on: branches: [ main ] paths: - godel-script/** + workflow_dispatch: jobs: mac-aarch64-build: From 4c68270548a76a2c4a1f128702a79b38dc96ae24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=95=E5=B1=B1?= Date: Fri, 3 Jan 2025 17:33:01 +0800 Subject: [PATCH 3/3] add example of get mybatis generated DOClass info --- example/java/GetMybatisDOClass.gdl | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 example/java/GetMybatisDOClass.gdl diff --git a/example/java/GetMybatisDOClass.gdl b/example/java/GetMybatisDOClass.gdl new file mode 100644 index 00000000..dc7f4cd9 --- /dev/null +++ b/example/java/GetMybatisDOClass.gdl @@ -0,0 +1,42 @@ +// script +use coref::java::* +use coref::xml::* + +fn default_xml_db() -> XmlDB { return XmlDB::load("coref_xml_src.db") } +fn default_java_db() -> JavaDB { return JavaDB::load("coref_java_src.db") } + +schema DBElement extends XmlElement {} + +impl DBElement { + // find XmlElement with name "resultMap" + pub fn __all__(db: XmlDB) -> *Self { + for (x in XmlElement(db)) { + if (x.getElementName() = "resultMap") { + yield DBElement { ..x } + } + } + } + + // get attribute "type" from XmlElement "resultMap" + pub fn getType(self) -> string { + for (a in self.getAttribute()) { + if (a.getName() = "type") { + return a.getValue() + } + } + } +} + +// if DBElement's type name equals to Java Class name, then collect this Class info +fn getDOClassFromResultMap() -> *Class { + for (c in Class(default_java_db()), e in DBElement(default_xml_db())) { + if (c.getQualifiedName() = e.getType()) { + yield c + } + } +} + +// example query, just get the class name, you could do other queries +query do_class +from c in getDOClassFromResultMap() +select c.getQualifiedName() as do_class_name