compositeid.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 691 行 · 第 1/2 页

JAVA
691
字号
   */  @Override  public int generateLoadForeign(JavaWriter out, String rs,                                 String indexVar, int index)    throws IOException  {    return generateLoadForeign(out, rs, indexVar, index,                               getForeignTypeName().replace('.', '_'));  }  /**   * Returns the foreign type.   */  @Override  public int generateLoadForeign(JavaWriter out, String rs,                                 String indexVar, int index,                                 String name)    throws IOException  {    out.print("__caucho_load_key_" + getForeignMakeKeyName());    out.print("(aConn, " + rs + ", " + indexVar + " + " + index + ")");    ArrayList<IdField> keys = getKeys();    index += keys.size();    return index;  }  /**   * Generates the select clause.   */  @Override  public String generateSelect(String id)  {    ArrayList<IdField> keys = getKeys();    CharBuffer cb = CharBuffer.allocate();    for (int i = 0; i < keys.size(); i++) {      if (i != 0)        cb.append(", ");      cb.append(keys.get(i).generateSelect(id));    }    return cb.close();  }  /**   * Generates the JPA QL select clause.   */  @Override  public String generateJavaSelect(String id)  {    ArrayList<IdField> keys = getKeys();    CharBuffer cb = CharBuffer.allocate();    for (int i = 0; i < keys.size(); i++) {      if (i != 0)        cb.append(", ");      cb.append(keys.get(i).generateJavaSelect(id));    }    return cb.close();  }  /**   * Generates the select clause.   */  @Override  public String generateLoadSelect(String id)  {    return null;  }  /**   * Returns the key for the value   */  @Override  public String generateGet(String value)  {    CharBuffer cb = CharBuffer.allocate();    cb.append("__caucho_make_key_" + getForeignMakeKeyName());    cb.append("(");    ArrayList<IdField> keys = getKeys();    for (int i = 0; i < keys.size(); i++) {      if (i != 0)	cb.append(", ");      cb.append(keys.get(i).generateGet(value));    }    cb.append(")");    return cb.close();  }  /**   * Generates loading cache   */  @Override  public void generateSet(JavaWriter out, String objThis, String value)    throws IOException  {    out.println("if (" + value + " != null) {");    out.pushDepth();    AmberPersistenceUnit persistenceUnit      = getOwnerType().getPersistenceUnit();    // ejb/06ie    if (persistenceUnit.isJPA() && ! isEmbeddedId()) {      // jpa/0u21      EmbeddableType embeddable        = persistenceUnit.getEmbeddable(_tKeyClass.getName());      // jpa/0u21 ArrayList<IdField> keys = getKeys();      ArrayList<AmberField> keys = embeddable.getFields();      for (int i = 0; i < keys.size(); i++) {        PropertyField key = (PropertyField) keys.get(i);        String getter = "__caucho_get_field(" + i + ")";        String subValue          = "((com.caucho.amber.entity.Embeddable) key)." + getter;        out.println("Object field" + i + " = " + subValue + ";");        out.println("if (field" + i + " == null)");        out.println("  return;");        KeyPropertyField prop = null;        AmberColumn column = key.getColumn();	// jpa/0j55        if (true || column == null) {          ArrayList<IdField> fields = getKeys();          for (int j = 0; j < fields.size(); j++) {            IdField id = fields.get(j);            if (id.getName().equals(key.getName()))              if (id instanceof KeyPropertyField)                prop = (KeyPropertyField) id;          }        }        if (prop != null)          key = prop;        AmberType columnType = key.getColumn().getType();        value = columnType.generateCastFromObject("field" + i);        key.generateSet(out, objThis, value);      }      // jpa/0u21      // out.println("__caucho_compound_key  = (" + getForeignTypeName() + ") " + value + ";");      /*      for (int i = 0; i < keys.size(); i++) {        IdField key = keys.get(i);        key.generateStatementSet(out, key.generateGetKeyProperty(obj + "_key"));      }      */    }    else {      out.println(getForeignTypeName() + " " + value + "_key = (" + getForeignTypeName() + ") " + value + ";");      if (getEmbeddedIdField() == null) {        // ejb/06ie        ArrayList<IdField> keys = getKeys();        for (int i = 0; i < keys.size(); i++) {          IdField key = keys.get(i);          key.generateSet(out, objThis, key.generateGetKeyProperty(objThis + "_key"));        }      }      else        getEmbeddedIdField().generateSet(out, objThis, value + "_key");    }    out.popDepth();    out.println("}");  }  /**   * Returns the key for the value   */  public String generateGetProxyProperty(String value)  {    CharBuffer cb = CharBuffer.allocate();    cb.append("__caucho_make_key_" + getForeignMakeKeyName());    cb.append("(");    ArrayList<IdField> keys = getKeys();    for (int i = 0; i < keys.size(); i++) {      if (i != 0)        cb.append(", ");      cb.append(keys.get(i).generateGetProxyProperty(value));    }    cb.append(")");    return cb.close();  }  /**   * Generates loading cache   */  @Override  public void generateLoadFromObject(JavaWriter out, String obj)    throws IOException  {    ArrayList<IdField> keys = getKeys();    for (int i = 0; i < keys.size(); i++) {      keys.get(i).generateLoadFromObject(out, obj);    }  }  /**   * Generates loading cache   */  @Override  public void generateUpdateFromObject(JavaWriter out, String obj)    throws IOException  {    ArrayList<IdField> keys = getKeys();    for (int i = 0; i < keys.size(); i++) {      keys.get(i).generateUpdateFromObject(out, obj);    }  }  /**   * Generates the where clause.   */  public String generateWhere(String id)  {    ArrayList<IdField> keys = getKeys();    CharBuffer cb = CharBuffer.allocate();    for (int i = 0; i < keys.size(); i++) {      if (i != 0)        cb.append(" and ");      cb.append(keys.get(i).generateWhere(id));    }    return cb.close();  }  /**   * Generates the where clause.   */  @Override  public String generateCreateTableSQL(AmberPersistenceUnit manager)  {    return null;  }  /**   * Generates the set clause.   */  @Override  public void generateSetKey(JavaWriter out, String pstmt,                             String obj, String index)    throws IOException  {    generateSet(out, pstmt, obj, index);  }  /**   * Generates code to convert to the type from the object.   */  @Override  public String generateCastFromObject(String value)  {    return value;  }  /**   * Generates code for a match.   */  @Override  public void generateMatch(JavaWriter out, String key)    throws IOException  {    out.println("return __caucho_getPrimaryKey().equals(" + key + ");");  }  /**   * Generates code to test the equals.   */  @Override  public String generateEquals(String leftBase, String value)  {    return leftBase + ".equals(" + value + ")";  }  /**   * Generates the set clause.   */  @Override  public void generateCheckCreateKey(JavaWriter out)    throws IOException  {  }  /**   * Generates the set clause.   */  /*    public void generateSetGeneratedKeys(JavaWriter out, String pstmt)    throws IOException    {    }  */  /**   * Generates code to convert to the object.   */  @Override  public String toObject(String value)  {    return value;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?