/**
   * 識別子生成用のテーブル記述を処理します。
   *
   * @param entityMeta エンティティメタデータ
   * @param tableDesc テーブル記述
   * @param table テーブル
   */
  protected void doIdTableDesc(EntityMeta entityMeta, TableDesc tableDesc, Table table) {
    for (PropertyMeta propertyMeta : entityMeta.getIdPropertyMetaList()) {
      TableDesc idTableDesc = idTableDescFactory.getTableDesc(entityMeta, propertyMeta);
      if (idTableDesc == null) {
        continue;
      }
      tableDesc.addIdTableDesc(idTableDesc);

      String fullName = idTableDesc.getFullName().toLowerCase();
      TableDesc cache = tableDescMap.get(fullName);
      if (cache == null) {
        tableDescMap.put(fullName, idTableDesc);
      } else {
        cache.setCatalogName(idTableDesc.getCatalogName());
        cache.setSchemaName(idTableDesc.getSchemaName());
        cache.setName(idTableDesc.getName());
        cache.setPrimaryKeyDesc(idTableDesc.getPrimaryKeyDesc());
        for (ColumnDesc columnDesc : idTableDesc.getColumnDescList()) {
          cache.addColumnDesc(columnDesc);
        }
        for (UniqueKeyDesc uniqueKeyDesc : idTableDesc.getUniqueKeyDescList()) {
          cache.addUniqueKeyDesc(uniqueKeyDesc);
        }
      }
    }
  }
 /**
  * 一意キー記述を処理します。
  *
  * @param entityMeta エンティティメタデータ
  * @param tableDesc テーブル記述
  * @param generator テーブルジェネレータ
  */
 protected void doUniqueConstraints(
     EntityMeta entityMeta, TableDesc tableDesc, TableGenerator generator) {
   for (UniqueConstraint uc : generator.uniqueConstraints()) {
     UniqueKeyDesc uniqueKeyDesc = uniqueKeyDescFactory.getCompositeUniqueKeyDesc(uc);
     if (uniqueKeyDesc != null) {
       tableDesc.addUniqueKeyDesc(uniqueKeyDesc);
     }
   }
 }
 /**
  * 一意キー記述を処理します。
  *
  * @param entityMeta エンティティメタデータ
  * @param tableDesc テーブル記述
  * @param table テーブル
  */
 protected void doUniqueKeyDesc(EntityMeta entityMeta, TableDesc tableDesc, Table table) {
   String singlePkColumnName = null;
   PrimaryKeyDesc primaryKeyDesc = tableDesc.getPrimaryKeyDesc();
   if (primaryKeyDesc != null && primaryKeyDesc.getColumnNameList().size() == 1) {
     singlePkColumnName = primaryKeyDesc.getColumnNameList().get(0);
   }
   for (ColumnDesc columnDesc : tableDesc.getColumnDescList()) {
     if (columnDesc.getName().equals(singlePkColumnName)) {
       continue;
     }
     UniqueKeyDesc uniqueKeyDesc = uniqueKeyDescFactory.getSingleUniqueKeyDesc(columnDesc);
     if (uniqueKeyDesc != null) {
       tableDesc.addUniqueKeyDesc(uniqueKeyDesc);
     }
   }
   for (UniqueConstraint uc : table.uniqueConstraints()) {
     UniqueKeyDesc uniqueKeyDesc = uniqueKeyDescFactory.getCompositeUniqueKeyDesc(uc);
     if (uniqueKeyDesc != null) {
       tableDesc.addUniqueKeyDesc(uniqueKeyDesc);
     }
   }
 }