All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.jboot.codegen.service.JbootServiceImplGenerator Maven / Gradle / Ivy

/**
 * Copyright (c) 2015-2017, Michael Yang 杨福海 ([email protected]).
 * 

* Licensed under the GNU Lesser General Public License (LGPL) ,Version 3.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.gnu.org/licenses/lgpl-3.0.txt *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package io.jboot.codegen.service; import com.jfinal.kit.PathKit; import com.jfinal.plugin.activerecord.generator.BaseModelGenerator; import com.jfinal.plugin.activerecord.generator.ColumnMeta; import com.jfinal.plugin.activerecord.generator.TableMeta; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class JbootServiceImplGenerator extends BaseModelGenerator { String modelPacket; public JbootServiceImplGenerator(String basePackage, String modelPacket) { super(basePackage, PathKit.getWebRootPath() + "/src/main/java/" + basePackage.replace(".", "/")); this.modelPacket = modelPacket; this.packageTemplate = "%n" + "package %s;%n%n"; this.classDefineTemplate = "public class %s extends JbootServiceBase<%s> implements %s {%n%n"; this.importTemplate = "import io.jboot.db.service.JbootServiceBase;%n%n"; } protected void genBaseModelContent(TableMeta tableMeta) { StringBuilder ret = new StringBuilder(); genPackage(ret); genImport(ret, tableMeta); genClassDefine(tableMeta, ret); for (ColumnMeta columnMeta : tableMeta.columnMetas) { genSetMethodName(columnMeta, ret); genGetMethodName(columnMeta, ret); } ret.append(String.format("}%n")); tableMeta.baseModelContent = ret.toString(); } protected void genImport(StringBuilder ret, TableMeta tableMeta) { ret.append(String.format("import %s.%sService;%n", baseModelPackageName.substring(0, baseModelPackageName.lastIndexOf(".")), tableMeta.modelName)); ret.append(String.format("import %s.%s;%n", modelPacket, tableMeta.modelName)); ret.append("import io.jboot.db.service.JbootServiceBase;\n\n"); } @Override protected void genClassDefine(TableMeta tableMeta, StringBuilder ret) { ret.append(String.format(classDefineTemplate, tableMeta.modelName + "ServiceImpl", tableMeta.modelName, tableMeta.modelName + "Service")); } @Override protected void genGetMethodName(ColumnMeta columnMeta, StringBuilder ret) { // super.genGetMethodName(columnMeta, ret); } @Override protected void genSetMethodName(ColumnMeta columnMeta, StringBuilder ret) { // super.genSetMethodName(columnMeta, ret); } /** * base model 覆盖写入 */ protected void writeToFile(TableMeta tableMeta) throws IOException { File dir = new File(baseModelOutputDir); if (!dir.exists()) { dir.mkdirs(); } String target = baseModelOutputDir + File.separator + tableMeta.modelName + "ServiceImpl" + ".java"; File targetFile = new File(target); if (targetFile.exists()) { return; } FileWriter fw = new FileWriter(target); try { fw.write(tableMeta.baseModelContent); } finally { fw.close(); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy