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

com.tsc9526.monalisa.orm.generator.DBWriterSelect Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
/*******************************************************************************************
 *	Copyright (c) 2016, zzg.zhou([email protected])
 * 
 *   Monalisa is free software: you can redistribute it and/or modify
 *	it under the terms of the GNU Lesser General Public License as published by
 *	the Free Software Foundation, either version 3 of the License, or
 *	(at your option) any later version.

 *	This program is distributed in the hope that it will be useful,
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *	GNU Lesser General Public License for more details.

 *	You should have received a copy of the GNU Lesser General Public License
 *	along with this program.  If not, see .
 *******************************************************************************************/
package com.tsc9526.monalisa.orm.generator;


import java.io.PrintWriter;
import com.tsc9526.monalisa.tools.template.jsp.JspContext;
import com.tsc9526.monalisa.orm.Version;
import com.tsc9526.monalisa.orm.meta.MetaTable;
import com.tsc9526.monalisa.orm.meta.MetaColumn;
import java.util.Set;

/**
 * Auto generate code from jsp: src\main\resources\com\tsc9526\monalisa\orm\resources\template\select.jsp
 * 
 * @author zzg.zhou([email protected])  
 */

public class DBWriterSelect{
	
	String toComments(String remarks){
		return remarks==null?"": remarks.replace("*/","**");
	}
	
	String toJavaString(String s){
		if(s==null)return "";
		
		return s.trim().replace("\"","\\\"").replace("\r","\\r").replace("\n","\\n");
	}
 
	String getComments(MetaTable table,MetaColumn c,String params,String leftPadding){
		String cname=c.getName();
		
		if(cname!=null && cname.length()>0 && c.getTable()!=null){	
			String r="/**\r\n"+leftPadding;
			r+="* @Column\r\n"+leftPadding; 
			r+="* 
  •       table: "+c.getTable().getName()+" name: "+cname; if(c.isKey() || c.isAuto() || c.isNotnull() || c.isEnum()){ boolean b=false; r+="  ["; if(c.isKey()){ r+=(b?"|":"")+"KEY"; b=true; } if(c.isAuto()){ r+=(b?"|":"")+"AUTO"; b=true; } if(c.isNotnull()){ r+=(b?"|":"")+"NOTNULL"; b=true; } if(c.isEnum()){ r+=(b?"|":"")+"ENUM"; b=true; } r+="]"; } r+="\r\n"+leftPadding; if(c.getLength()>0 || c.getValue()!=null){ r+="*
  •    "; if(c.getLength()>0){ r+="length: "+c.getLength(); } if(c.getValue()!=null){ r+="  value: "+toJavaString(c.getValue()); } r+="
    \r\n"+leftPadding; } if(c.getRemarks()!=null){ r+="*
  • remarks: "+toComments(c.getRemarks())+"\r\n"+leftPadding; } if(params==null){ params=""; } params=params.trim(); if(params.length()>0){ r+="* "+params; } r+="*/\r\n"+leftPadding; String f=c.getTable().getJavaName()+".M."; if(c.getTable().getJavaPackage().equals(table.getJavaPackage())){ f="M."; } String[] names=new String[]{"name","key","auto","seq","notnull","length","decimalDigits","value","remarks"}; r+="@Column(table="+f+"TABLE, jdbcType="+c.getJdbcType(); for(String n:names){ String colname=c.nameToJava(); int p=colname.indexOf("$"); if(p>0){ colname=colname.substring(p+1); } r+=", "+n+"="+f+colname+"$"+n; } r+=")"; return r; }else{ return ""; } } String firstUpper(String s){ return s.substring(0,1).toUpperCase()+s.substring(1); } String html(Object v){ if(v==null){ return ""; }else{ return v.toString().trim(); } } public void service(JspContext request,PrintWriter out){ MetaTable table =(MetaTable)request.getAttribute("table"); @SuppressWarnings("unchecked") Set imports =(Set)request.getAttribute("imports"); String fingerprint=(String)request.getAttribute("fingerprint"); String see =(String)request.getAttribute("see"); out.print("package "); out.print(table.getJavaPackage()); out.println(";"); for(MetaColumn c:table.getColumns()){ if(c.getTable()!=null && c.getCode("file")!=null){ imports.add("java.io.File"); imports.add("com.tsc9526.monalisa.tools.io.MelpFile"); imports.add("com.tsc9526.monalisa.orm.datasource.DBConfig"); break; } } out.println(" "); for(String i:imports){ out.println(""); out.print("import "); out.print(i); out.print(";"); } out.println(""); out.println(" "); out.println("/**"); out.print(" * Auto generated code by monalisa "); out.print(Version.getVersion()); out.println(""); out.println(" *"); out.print(" * @see "); out.print(see); out.println(""); out.println(" */"); out.print("public class "); out.print(table.getJavaName()); out.println(" implements java.io.Serializable{"); out.print(" private static final long serialVersionUID = "); out.print(table.getSerialID()); out.println("L; "); out.print(" final static String FINGERPRINT = \""); out.print(fingerprint ); out.println("\";"); out.println(" "); out.println(" "); out.print(" "); for(MetaColumn f:table.getColumns()){ out.println(""); out.print(" "); out.print(getComments(table, f, " ","\t") ); out.println(""); out.print(" private "); out.print(f.getJavaType()); out.print(" "); out.print(f.getJavaName()); out.println("; "); out.println(" "); out.print(" "); } out.println(""); out.println(" "); out.println(" "); out.print(" "); for(MetaColumn f:table.getColumns()){ out.println(""); out.print(" "); out.print(getComments(table, f, " ","\t") ); out.println(""); out.print(" public "); out.print(table.getJavaName()); out.print(" "); out.print(f.getJavaNameSet()); out.print("("); out.print(f.getJavaType()); out.print(" "); out.print(f.getJavaName()); out.println("){"); out.print(" this."); out.print(f.getJavaName()); out.print(" = "); out.print(f.getJavaName()); out.println(";"); out.println(" return this;"); out.println(" }"); out.println(" "); out.print(" "); } out.println(""); out.println(" "); out.println(" "); out.print(" "); for(MetaColumn f:table.getColumns()){ out.println(""); out.print(" "); out.print(getComments(table, f, " ","\t") ); out.println(""); out.print(" public "); out.print(f.getJavaType()); out.print(" "); out.print(f.getJavaNameGet()); out.println("(){"); out.print(" return this."); out.print(f.getJavaName()); out.println("; "); out.println(" }"); out.println(" "); out.print(" "); out.print(getComments(table, f, "@param defaultValue Return the default value if "+f.getJavaName()+" is null.","\t") ); out.println(""); out.print(" public "); out.print(f.getJavaType()); out.print(" "); out.print(f.getJavaNameGet()); out.print("("); out.print(f.getJavaType()); out.println(" defaultValue){"); out.print(" "); out.print(f.getJavaType()); out.print(" r=this."); out.print(f.getJavaNameGet()); out.println("();"); out.println(" if(r==null){"); out.println(" r=defaultValue;"); out.println(" } "); out.println(" "); out.println(" return r;"); out.println(" }"); out.println(" "); out.print(" "); String file=f.getCode("file"); if(f.getTable()!=null && file!=null){ out.println(""); out.print(" "); out.print(getComments(table,f,"@param charset read file content using this charset.","\t")); out.println(" "); out.print(" public String "); out.print(f.getJavaNameGet()); out.println("AsString(String charset){"); out.print(" "); out.print(f.getJavaType()); out.print(" r=this."); out.print(f.getJavaNameGet()); out.println("();"); out.println(" "); out.println(" if(r==null){"); out.println(" return null;"); out.println(" }"); out.println(" "); out.print(" DBConfig db=DBConfig.fromClass("); out.print(f.getTable().getJavaName()); out.println(".class);"); out.print(" String filepath=MelpFile.combinePath(\""); out.print(file); out.println("\",r);"); out.println(" filepath=db.getCfg().parseFilePath(filepath);"); out.println(" return MelpFile.readToString(new File(filepath),charset);"); out.println(" }"); out.println(" "); out.print(" "); out.print(getComments(table,f," ","\t")); out.println(" "); out.print(" public String "); out.print(f.getJavaNameGet()); out.println("AsStringUTF8(){"); out.print(" return "); out.print(f.getJavaNameGet()); out.println("AsString(\"utf-8\");"); out.println(" }"); out.println(" "); out.print(" "); out.print(getComments(table,f," ","\t")); out.println(" "); out.print(" public byte[] "); out.print(f.getJavaNameGet()); out.println("AsBytes(){"); out.print(" "); out.print(f.getJavaType()); out.print(" r=this."); out.print(f.getJavaNameGet()); out.println("();"); out.println(" "); out.println(" if(r==null){"); out.println(" return null;"); out.println(" }"); out.println(" "); out.print(" DBConfig db=DBConfig.fromClass("); out.print(f.getTable().getJavaName()); out.println(".class);"); out.print(" String filepath=MelpFile.combinePath(\""); out.print(file); out.println("\",r);"); out.println(" filepath=db.getCfg().parseFilePath(filepath);"); out.println(" return MelpFile.readFile(new File(filepath));"); out.println(" }"); out.println(" "); out.print(" public File "); out.print(f.getJavaNameGet()); out.println("AsFile(){"); out.print(" "); out.print(f.getJavaType()); out.print(" r=this."); out.print(f.getJavaNameGet()); out.println("();"); out.println(" "); out.println(" if(r==null){"); out.println(" return null;"); out.println(" }"); out.println(" "); out.print(" DBConfig db=DBConfig.fromClass("); out.print(f.getTable().getJavaName()); out.println(".class);"); out.print(" String filepath=MelpFile.combinePath(\""); out.print(file); out.println("\",r);"); out.println(" filepath=db.getCfg().parseFilePath(filepath);"); out.println(" return new File(filepath);"); out.println(" }"); out.print(" "); } out.println(""); out.print(" "); } out.println(""); out.println(" "); out.println("}"); out.println(" "); out.flush(); } }




  • © 2015 - 2025 Weber Informatics LLC | Privacy Policy