⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hibernateemfconfiggenerator.java

📁 基于eclipse的工具开发代码
💻 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 + -