From 51a4ff5054a2aae5da4f5d997b9fcf4d85670a85 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Mon, 16 Jan 2023 11:05:46 +0800 Subject: [PATCH] first commit. --- .vscode/settings.json | 7 + README.md | 18 +++ bin/xyz/zhouxy/mappojo/generator/App.class | Bin 0 -> 4048 bytes .../mappojo/generator/FieldTypeMap.class | Bin 0 -> 1238 bytes .../system/domain/model/role/Role.class | Bin 0 -> 4376 bytes src/xyz/zhouxy/mappojo/generator/App.java | 112 +++++++++++++++ .../system/domain/model/role/Role.java | 129 ++++++++++++++++++ 7 files changed, 266 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 bin/xyz/zhouxy/mappojo/generator/App.class create mode 100644 bin/xyz/zhouxy/mappojo/generator/FieldTypeMap.class create mode 100644 bin/xyz/zhouxy/plusone/system/domain/model/role/Role.class create mode 100644 src/xyz/zhouxy/mappojo/generator/App.java create mode 100644 src/xyz/zhouxy/plusone/system/domain/model/role/Role.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e112a70 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "java.project.sourcePaths": ["src"], + "java.project.outputPath": "bin", + "java.project.referencedLibraries": [ + "lib/**/*.jar" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..7c03a53 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/bin/xyz/zhouxy/mappojo/generator/App.class b/bin/xyz/zhouxy/mappojo/generator/App.class new file mode 100644 index 0000000000000000000000000000000000000000..c77ae92572d4154444c1a5aa18d97c2035049d5a GIT binary patch literal 4048 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 NAlrm6JRvNBoqxH2F`xhd literal 0 HcmV?d00001 diff --git a/bin/xyz/zhouxy/plusone/system/domain/model/role/Role.class b/bin/xyz/zhouxy/plusone/system/domain/model/role/Role.class new file mode 100644 index 0000000000000000000000000000000000000000..218b83feacdd8b2bebc206c60ef05cdd59acba96 GIT binary patch literal 4376 zcmb`J>30)V7{;GT+D;M%8m4I}ZNY+oU4&qj%>qS=&_ba=pcqgwZH9IrOU+U!i{LIt zJu2?F;ClS3CY{B;` zd)!}a!Pv0$d6dlQo! z3dYRwOrlWC84A`_k8Yl8%F$zQ-@8?q-)v^g!d3g`u$ZRv1;XV6XjP!*jC3M*ij5@-=8ffyM8P;- zFvZFTxYF)O9v__!U>PSACzF*44|0OtVNX~|b5lkxZ)P(=D0oOiE$UQsDp+XgXDKw0 z$WKtE5IRsVW<9JyML?)%W{iEs^r(?Llo(A>IejQQmPm~xa;9j@&YHr6NzHqP?)9W8 zsoqh27QI5)jk7xc;{l1KP1S(YlO@R7aicJp6dQIr4tFTadovFkut~*61@kMKP!A1{ zgNS~vRIo}iIj&@{(~`U=63vB{_ti1a0^)t4zaq*MM5?qZN0~}*>btB@JQUNie%+|=37Tr3KO1= zrDCNWq8wHJ3sDqh;F>d5~RScIdx}}ZmXEvaz($ZZ{CrT^t%Zmnw7bQcCM`9kd zBbp6vTy6*l`>pUk#OPMgT5>`Jd(^tgI~dwxkghzXV3DQL+)-N_r>VWtskw7`YwsgY zW!4cW3KrXby4Y5rm3>NXpJtQ(+FVvMD3g~M65b!Sa+hsY9Ivx2^O!v-%-VxxvyNu4 zXxXubgxn)`#JDHM231Z&pa49IABOzwP`dU^q{(?(F*o@~j z%4_EG9zAkz% zXxN2;5cc7suzpG43_5L=E|Zx2l7{^_5W*3>qTyA%#_EzK#j=h;>nE4FoQ+ughK4wf zN{4(`Mb}#zo<*PR^8YQm-qnyqpV;DxhWEj=>d$0Pi;)jCByco{kMXIBPpZqERns+G z#b=zK6?v)Az9(ijx}OD_0mr+Z?hWA!TvPESm9wsM^{|Go@HOR~6f06ZnMP-LmQtCh zzKPs8&mk1c7IS09PE(Ypp!j}RBdlT>Y5hDkA9PXj_@;}Z#@?XS8$vVRS+@C{&z{Si zrSN~a>n0X-g+sp~9QW&bEMB8WV)0tNDHgBOn`3cRZ;8bNdRr_WuG5$Dsp{=~2K428 z2K5!O8(7tK2OaU7=(>UKpRCPR^V!4=fCZ=_z)FPBk9r<>7;D%oAhjo#8dv)`Hu!(wbxSZmDqy+;tN{avSYS=|rV@ZM@wul$o3bL*AU~8nBf^D}4Tay=C zrz;!tiYr@_7u#yGt?^)6B-w_rR~oI>ty!||o2^@qD;pD*D_gS{+j_EX@L*evgEXcf z=Am1Qmu|hTY==B_Yw=?1Bil9)wpOXzVT`!y)+X7G%+_s(D;smQt8Q&xYy)H)^k6%N zr!C!{@rcucw_|YzIBqj>|ZG&O^6$FWp95*;u1o+1kC>j*{(| z2ivIBZOlWrxAjmnO0ECBgovs)C|t( zXJ>HUe+w_n;KhaNUp3(+fp8=oxP_Nz@OlK7t*LKD@V52x&Mmw*gAazT<0GPcUa8YP ztj53;w>r)0d fields = fieldTypeMap.fields; + StringBuilder result = new StringBuilder(String.format(""" + package %s; + + import java.util.*; + + public class %s { + + private final String[] fieldNames = { "%s" }; + """, packageName, className, String.join("\", \"", fields.keySet()))); + + result.append(String.format(""" + + private final Map fields; + + public %s() { + this.fields = new HashMap<>(); + } + + public %s(final Map fields) { + this.fields = fields; + } + """, className, className)); + + for (var field_name : fields.keySet()) { + var words = field_name.split("_"); + StringBuilder fieldName = new StringBuilder(); + StringBuilder FieldName = new StringBuilder(); + + for (int i = 0; i < words.length; i++) { + var word = words[i]; + var Word = word.substring(0, 1).toUpperCase() + word.substring(1); + fieldName.append((i == 0) ? word : Word); + FieldName.append(Word); + } + + String fieldNameStr = fieldName.toString(); + String FieldNameStr = FieldName.toString(); + + String fieldTypeName = fields.get(field_name); + result.append(String.format(""" + + public %s get%s() { + return (%s) this.fields.get("%s"); + } + """, fieldTypeName, FieldNameStr, fieldTypeName, field_name)); + if (chain) { + result.append(String.format(""" + public %s set%s(%s %s) { + this.fields.put("%s", %s); + return this; + } + """, className, FieldNameStr, fieldTypeName, fieldNameStr, field_name, fieldNameStr)); + } else { + result.append(String.format(""" + public void set%s(%s %s) { + this.fields.put("%s", %s); + } + """, FieldNameStr, fieldTypeName, fieldNameStr, field_name, fieldNameStr)); + } + } + + result.append(""" + + @Override + public String toString() { + return this.fields.toString(); + } + """); + result.append("}\n"); + String resultStr = result.toString(); + System.out.println(resultStr); + } +} + +class FieldTypeMap { + final Map fields = new LinkedHashMap<>(); + + FieldTypeMap addField(String field_name, String type) { + this.fields.put(field_name, type); + return this; + } + + FieldTypeMap addField(String field_name, Class type) { + this.fields.put(field_name, type.getSimpleName()); + return this; + } +} diff --git a/src/xyz/zhouxy/plusone/system/domain/model/role/Role.java b/src/xyz/zhouxy/plusone/system/domain/model/role/Role.java new file mode 100644 index 0000000..2192d71 --- /dev/null +++ b/src/xyz/zhouxy/plusone/system/domain/model/role/Role.java @@ -0,0 +1,129 @@ +package xyz.zhouxy.plusone.system.domain.model.role; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; + +public class Role { + + private final String[] fieldNames = { "id", "name", "identifier", "status", "remarks", + "create_time", "created_by", "update_time", "updated_by", "version" }; + + private final Map fields; + + public Role() { + this.fields = new HashMap<>(); + } + + public Role(final Map fields) { + this.fields = fields; + } + + public Long getId() { + return (Long) this.fields.get("id"); + } + + public Role setId(Long id) { + this.fields.put("id", id); + return this; + } + + public String getName() { + return (String) this.fields.get("name"); + } + + public Role setName(String name) { + this.fields.put("name", name); + return this; + } + + public String getIdentifier() { + return (String) this.fields.get("identifier"); + } + + public Role setIdentifier(String identifier) { + this.fields.put("identifier", identifier); + return this; + } + + public Integer getStatus() { + return (Integer) this.fields.get("status"); + } + + public Role setStatus(Integer status) { + this.fields.put("status", status); + return this; + } + + public String getRemarks() { + return (String) this.fields.get("remarks"); + } + + public Role setRemarks(String remarks) { + this.fields.put("remarks", remarks); + return this; + } + + public LocalDateTime getCreateTime() { + return (LocalDateTime) this.fields.get("create_time"); + } + + public Role setCreateTime(LocalDateTime createTime) { + this.fields.put("create_time", createTime); + return this; + } + + public Long getCreatedBy() { + return (Long) this.fields.get("created_by"); + } + + public Role setCreatedBy(Long createdBy) { + this.fields.put("created_by", createdBy); + return this; + } + + public LocalDateTime getUpdateTime() { + return (LocalDateTime) this.fields.get("update_time"); + } + + public Role setUpdateTime(LocalDateTime updateTime) { + this.fields.put("update_time", updateTime); + return this; + } + + public Long getUpdatedBy() { + return (Long) this.fields.get("updated_by"); + } + + public Role setUpdatedBy(Long updatedBy) { + this.fields.put("updated_by", updatedBy); + return this; + } + + public Long getVersion() { + return (Long) this.fields.get("version"); + } + + public Role setVersion(Long version) { + this.fields.put("version", version); + return this; + } + + @Override + public String toString() { + return this.fields.toString(); + } + + public static void main(String[] args) { + Role role = new Role() + .setId(2333L) + .setIdentifier("role") + .setName("角色") + .setStatus(0) + .setCreateTime(LocalDateTime.of(2000, 1, 29, 5, 20, 8)) + .setCreatedBy(666L) + .setUpdatedBy(999L) + .setUpdateTime(LocalDateTime.now()); + System.out.println(role); + } +}