【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-CodeGenUtils.java,希望本篇文章对您学习有所帮助。
package com.cownew.studio.modelDev.codeGen;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.dom4j.DocumentException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import com.cownew.ctk.common.StringUtils;
import com.cownew.studio.modelDev.common.CommonUtils;
import com.cownew.studio.modelDev.common.EntityFieldModelBean;
import com.cownew.studio.modelDev.common.EntityModelBean;
import com.cownew.studio.modelDev.common.EntityModelFileHandler;
import com.cownew.studio.modelDev.common.StudioUtils;
import com.cownew.studio.modelDev.common.enumdef.DataTypeEnum;
import com.cownew.studio.modelDev.common.enumdef.LinkTypeEnum;
import com.cownew.studio.modelDev.common.enumdef.ORMToolsEnum;
public class CodeGenUtils
{
// hardcode here
private static String CONFIGFILEPATH = "bizLayer";
private static String SRCCODEPATH = "common";
public static String getConfigFilePck(String pck)
{
if(StringUtils.isEmpty(pck))
{
return pck;
}
return pck+"."+CONFIGFILEPATH;
}
public static String getSrcCodePck(String pck)
{
if(StringUtils.isEmpty(pck))
{
return pck;
}
return pck+"."+SRCCODEPATH;
}
public static Set<String> getImports(EntityModelBean bean,IProject project)
{
Set<String> importSet = new HashSet<String>();
importSet.add("java.util.*");
importSet.add("java.sql.*");
importSet.add("java.math.*");
importSet.add("com.cownew.PIS.framework.common.*");
List<EntityFieldModelBean> fieldList = bean.getFieldList();
for(int i=0,n=fieldList.size();i<n;i++)
{
EntityFieldModelBean field = fieldList.get(i);
if(field.isLinkProperty()==false
||CommonUtils.isEmptyString(field.getLinkEntity()))
{
continue;
}
EntityModelBean linkBean = entityToXMLBean(field.getLinkEntity(),project);
String linkPackage = linkBean.getPackageName();
if(!CommonUtils.isEmptyString(linkPackage)
&&!linkPackage.equals(bean.getPackageName()))
{
importSet.add(linkPackage+"."+SRCCODEPATH+".*");
}
}
return importSet;
}
public static String dataTypeToJavaString(EntityFieldModelBean field,
INameStrategy nameStrategy,IProject project)
{
DataTypeEnum dataType = field.getDataype();
if(!field.isLinkProperty())
{
if(dataType==DataTypeEnum.BIGDECIMAL)
return "BigDecimal";
if(dataType==DataTypeEnum.BLOB)
return "Blob";
if(dataType==DataTypeEnum.BOOLEAN)
return "boolean";
if(dataType==DataTypeEnum.CLOB)
return "Clob";
if(dataType==DataTypeEnum.DATE)
return "java.sql.Date";
if(dataType==DataTypeEnum.INTEGER)
return "int";
if(dataType==DataTypeEnum.STRING)
return "String";
throw new IllegalArgumentException();
}
LinkTypeEnum linkType = field.getLinkType();
if(linkType==LinkTypeEnum.ONETOMANY)
{
return "Set";
}
if(linkType==LinkTypeEnum.ONETOONE||linkType==LinkTypeEnum.MANYTOONE)
{
EntityModelBean linkBean = entityToXMLBean(field.getLinkEntity(),project);
return nameStrategy.entityNameToOVName(linkBean.getName());
}
throw new IllegalArgumentException();
}
public static String dataTypeToDBDef(EntityFieldModelBean field)
{
DataTypeEnum dataType = field.getDataype();
if(!field.isLinkProperty())
{
if(dataType==DataTypeEnum.BIGDECIMAL)
return "big_decimal";
if(dataType==DataTypeEnum.BLOB)
return "blob";
if(dataType==DataTypeEnum.BOOLEAN)
return "boolean";
if(dataType==DataTypeEnum.CLOB)
return "clob";
if(dataType==DataTypeEnum.DATE)
return "date";
if(dataType==DataTypeEnum.INTEGER)
return "int";
if(dataType==DataTypeEnum.STRING)
return "string";
throw new IllegalArgumentException();
}
LinkTypeEnum linkType = field.getLinkType();
if(linkType==LinkTypeEnum.MANYTOONE)
{
return null;
}
if(linkType==LinkTypeEnum.ONETOONE)
{
return "string";
}
throw new IllegalArgumentException();
}
private static EntityModelBean entityToXMLBean(String entity,IProject project)
{
IFile file = project.getFile(StudioUtils.addMetaDataPath(entity));
if(file==null||file.exists()==false)
{
throw new RuntimeException("link entity:"+entity+" not exists!");
}
EntityModelBean linkBean;
try
{
linkBean = EntityModelFileHandler.xmlToBean(file);
} catch (DocumentException e)
{
throw new RuntimeException(e);
}
return linkBean;
}
public static EntityFieldModelBean getFieldModelByName(EntityModelBean modelBean,
String fieldName)
{
List<EntityFieldModelBean> fieldList = modelBean.getFieldList();
for(int i=0,n=fieldList.size();i<n;i++)
{
EntityFieldModelBean field = fieldList.get(i);
if(field.getName().equals(fieldName))
{
return field;
}
}
throw new IllegalArgumentException("field:"+fieldName+"not found!");
}
public static String getXMLDOCTYPE(ORMToolsEnum ormType)
{
if(ormType==ORMToolsEnum.HIBERNATE2)
{
StringBuffer sb = new StringBuffer();
sb.append("<!DOCTYPE hibernate-mapping").append(CommonUtils.LINESEPARATOR);
sb.append(" PUBLIC \"-//Hibernate/Hibernate Mapping DTD//EN\"")
.append(CommonUtils.LINESEPARATOR);
sb.append(" \"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd\">")
.append(CommonUtils.LINESEPARATOR);
return sb.toString();
}
if(ormType==ORMToolsEnum.HIBERNATE3)
{
StringBuffer sb = new StringBuffer();
sb.append("<!DOCTYPE hibernate-mapping SYSTEM").append(CommonUtils.LINESEPARATOR);
sb.append(" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" >")
.append(CommonUtils.LINESEPARATOR);
return sb.toString();
}
throw new IllegalArgumentException();
}
}
上一篇:
CodeGenException.java
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值