📄 hibernateemfconfiggenerator.java
字号:
package com.cownew.studio.modelDev.codeGen.hib;
import com.cownew.studio.modelDev.common.*;
import org.eclipse.core.resources.IProject;
import java.util.*;
import com.cownew.studio.modelDev.common.enumdef.*;
public class HibernateEMFConfigGenerator
{
protected static String nl;
public static synchronized HibernateEMFConfigGenerator create(String lineSeparator)
{
nl = lineSeparator;
HibernateEMFConfigGenerator result = new HibernateEMFConfigGenerator();
nl = null;
return result;
}
protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
protected final String TEXT_1 = "<?xml version=\"1.0\"?>" + NL + "<!DOCTYPE hibernate-mapping SYSTEM \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" >" + NL + "<hibernate-mapping>" + NL + " <class name=\"";
protected final String TEXT_2 = "\" table=\"";
protected final String TEXT_3 = "\"> " + NL + " " + NL + " <id name=\"";
protected final String TEXT_4 = "\" type=\"string\" unsaved-value=\"null\" >" + NL + " <column name=\"";
protected final String TEXT_5 = "\" sql-type=\"";
protected final String TEXT_6 = "\" " + NL + " not-null=\"true\"/>" + NL + " <generator class=\"uuid.hex\"/>" + NL + " </id>" + NL + " ";
protected final String TEXT_7 = NL + " <set name=\"";
protected final String TEXT_8 = "\" lazy=\"true\" inverse=\"";
protected final String TEXT_9 = "\" " + NL + " cascade=\"";
protected final String TEXT_10 = "\">" + NL + " <key column=\"";
protected final String TEXT_11 = "\" />" + NL + " <one-to-many class=\"";
protected final String TEXT_12 = "\" />" + NL + " </set>";
protected final String TEXT_13 = NL + " <many-to-one name=\"";
protected final String TEXT_14 = "\" column=\"";
protected final String TEXT_15 = "\"/> ";
protected final String TEXT_16 = NL + " <one-to-one name=\"";
protected final String TEXT_17 = "\" " + NL + " class=\"";
protected final String TEXT_18 = "\"" + NL + " constrained=\"";
protected final String TEXT_19 = "\" ";
protected final String TEXT_20 = " " + NL + " />";
protected final String TEXT_21 = NL + " <property name=\"";
protected final String TEXT_22 = "\">" + NL + " <column name=\"";
protected final String TEXT_23 = "\" ";
protected final String TEXT_24 = " not-null=\"";
protected final String TEXT_25 = "\"/>" + NL + " </property>" + NL + " ";
protected final String TEXT_26 = NL + " </class> " + NL + "</hibernate-mapping>";
public String generate(Object argument)
{
final StringBuffer stringBuffer = new StringBuffer();
CodeGenArgInfo argInfo = (CodeGenArgInfo)argument;
EntityModelBean modelBean = argInfo.getModelBean();
IProject project = argInfo.getProject();
INameStrategy nameStrategy = argInfo.getNameStrategy();
List<EntityFieldModelBean> fieldList = modelBean.getFieldList();
EntityFieldModelBean primaryKeyBean = CodeGenUtils.getFieldModelByName(modelBean,
modelBean.getPrimaryKey());
stringBuffer.append(TEXT_1);
stringBuffer.append(modelBean.getPackageName()+"."+nameStrategy.entityNameToOVName(modelBean.getName()));
stringBuffer.append(TEXT_2);
stringBuffer.append(modelBean.getDbTableName());
stringBuffer.append(TEXT_3);
stringBuffer.append(modelBean.getPrimaryKey());
stringBuffer.append(TEXT_4);
stringBuffer.append(primaryKeyBean.getDbFieldName());
stringBuffer.append(TEXT_5);
stringBuffer.append(CodeGenUtils.dataTypeToDBDef(primaryKeyBean));
stringBuffer.append(TEXT_6);
for(int i=0,n=fieldList.size();i<n;i++)
{
EntityFieldModelBean field = fieldList.get(i);
if(field.getName().equals(primaryKeyBean.getName()))
{
continue;
}
if(field.getLinkType()==LinkTypeEnum.ONETOMANY)
{
stringBuffer.append(TEXT_7);
stringBuffer.append(field.getName());
stringBuffer.append(TEXT_8);
stringBuffer.append(field.isInverse());
stringBuffer.append(TEXT_9);
stringBuffer.append(field.getCascadeType().toString());
stringBuffer.append(TEXT_10);
stringBuffer.append(field.getKeyColumn());
stringBuffer.append(TEXT_11);
stringBuffer.append(nameStrategy.entityFullPathToFullClassName(field.getLinkEntity(),project));
stringBuffer.append(TEXT_12);
}
else if(field.getLinkType()==LinkTypeEnum.MANYTOONE)
{
stringBuffer.append(TEXT_13);
stringBuffer.append(field.getName());
stringBuffer.append(TEXT_14);
stringBuffer.append(field.getDbFieldName());
stringBuffer.append(TEXT_15);
}
else if(field.getLinkType()==LinkTypeEnum.ONETOONE)
{
stringBuffer.append(TEXT_16);
stringBuffer.append(field.getName());
stringBuffer.append(TEXT_17);
stringBuffer.append(nameStrategy.entityFullPathToFullClassName(field.getLinkEntity(),project));
stringBuffer.append(TEXT_18);
stringBuffer.append(field.isConstrained());
stringBuffer.append(TEXT_19);
if(field.getCascadeType()!=null)
{
stringBuffer.append("cascade=\"").append(field.getCascadeType().toString()).append("\"");
}
if(field.getOuterJoinType()!=null)
{
stringBuffer.append("outer-join=\"").append(field.getOuterJoinType().toString()).append("\"");
}
stringBuffer.append(TEXT_20);
}
else// simple field
{
String fieldDBDef = CodeGenUtils.dataTypeToDBDef(primaryKeyBean);
fieldDBDef = "sql-type=\""+fieldDBDef+"\"";
stringBuffer.append(TEXT_21);
stringBuffer.append(field.getName());
stringBuffer.append(TEXT_22);
stringBuffer.append(field.getDbFieldName());
stringBuffer.append(TEXT_23);
stringBuffer.append(fieldDBDef);
stringBuffer.append(TEXT_24);
stringBuffer.append(!field.isAllowNull());
stringBuffer.append(TEXT_25);
}
}
stringBuffer.append(TEXT_26);
return stringBuffer.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -