GenerateService.java 2.14 KB
package com.taover.business;

import java.io.File;
import java.io.StringWriter;

import com.taover.base.template.model.bussiness.EnvironmentModel;
import com.taover.base.template.model.bussiness.ServiceModel;
import com.taover.db.Tools;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class GenerateService {

	public static void generateService(EnvironmentModel enirModel, boolean coverWhenFileExists) {
		try{
			ServiceModel model = ServiceModel.createServiceModel(
					enirModel.getPoPackageInfo(),
					enirModel.getBeanClassName(),
					enirModel.getMainPackageInfo(),
					enirModel.getSubModuleName());
			
			File f = new File(Tools.getPath() + Constants.TEMPATE_PATH);
			Configuration cfg = new Configuration();
			cfg.setDirectoryForTemplateLoading(f);
			
			//service实现文件
			StringWriter outService = new StringWriter();
			Template templateService = cfg.getTemplate(Constants.TEMPATE_SERVICEIMPLNAME, "UTF-8");		
			templateService.process(model, outService);
			File destFile = new File(
					enirModel.getServiceFilePath()+File.separator+
					"impl"+File.separator+
					model.getBeanClassName()+"ServiceImpl.java");
			if(coverWhenFileExists || !destFile.exists()){
				Tools.createFile(enirModel.getServiceFilePath()+File.separator+"impl", model.getBeanClassName()+"ServiceImpl.java", outService.toString());	
			}else{
				System.out.println("文件生成:"+destFile.getName()+"文件已经存在,未覆盖!");
			}
			
			//service接口文件
			StringWriter outServiceImpl = new StringWriter();
			Template templateServiceImpl = cfg.getTemplate(Constants.TEMPATE_SERVICENAME, "UTF-8");		
			templateServiceImpl.process(model, outServiceImpl);
			File destFile2 = new File(
					enirModel.getServiceFilePath()+File.separator+
					model.getBeanClassName()+"Service.java");
			if(coverWhenFileExists || !destFile2.exists()){
				Tools.createFile(enirModel.getServiceFilePath(), model.getBeanClassName()+"Service.java", outServiceImpl.toString());	
			}else{
				System.out.println("文件生成:"+destFile2.getName()+"文件已经存在,未覆盖!");
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}	
}