svnno****@sourc*****
svnno****@sourc*****
2009年 4月 10日 (金) 21:34:16 JST
Revision: 3211 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3211 Author: daisuke_m Date: 2009-04-10 21:34:16 +0900 (Fri, 10 Apr 2009) Log Message: ----------- テストデータファイル追加。 / PostgreSQLのインポート機能強化。 Modified Paths: -------------- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/enhance/FactoryExtension.java artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java charon/jiemamy-jpa-exporter/trunk/src/main/java/org/jiemamy/composer/exporter/JpaExporter.java Added Paths: ----------- artemis/trunk/jiemamy-artemis-test/src/test/resources/datafiles/polls.jer artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlEntityImportVisitor.java -------------- next part -------------- Modified: artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java =================================================================== --- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java 2009-04-10 12:17:31 UTC (rev 3210) +++ artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/DatabaseTest.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -77,7 +77,7 @@ import org.jiemamy.validator.Problem.Severity; /** - * TODO for daisuke + * 各種モデルを、用意したリアルDBに適用するテスト。 * * @author daisuke */ @@ -201,7 +201,6 @@ } catch (Exception e) { String message = "failed on " + testDatabase.name() + " with " + file.getAbsolutePath(); logger.error(message, e); - Thread.sleep(10000); fail(message + " " + e.getMessage()); } } Added: artemis/trunk/jiemamy-artemis-test/src/test/resources/datafiles/polls.jer =================================================================== --- artemis/trunk/jiemamy-artemis-test/src/test/resources/datafiles/polls.jer (rev 0) +++ artemis/trunk/jiemamy-artemis-test/src/test/resources/datafiles/polls.jer 2009-04-10 12:34:16 UTC (rev 3211) @@ -0,0 +1,396 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jiemamy xmlns="http://jiemamy.org/xml/ns/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="782df6b3-b903-4838-9e03-7b0580fa0487" version="0.2-SNAPSHOT" xsi:schemaLocation="http://jiemamy.org/xml/ns/core ../../main/resources/jiemamy-core.xsd http://jiemamy.org/xml/ns/view ../../main/resources/jiemamy-view.xsd"> + <dialect>org.jiemamy.dialect.postgresql.PostgresqlDialect</dialect> + <domains/> + <entities> + <table id="8dedee12-dd59-464b-b354-231a9d1b8e74"> + <name>t_choice</name> + <attributes> + <primaryKey id="55ceccbd-29b6-4510-91e9-2159ea55a458"> + <columnRefs> + <columnRef ref="b4250286-aca5-4e4c-b53e-b87d025a1dcc"/> + </columnRefs> + </primaryKey> + <column id="b4250286-aca5-4e4c-b53e-b87d025a1dcc"> + <name>choice_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>BIGSERIAL</typeName> + </dataType> + </column> + <column id="ed486bb5-eff9-4c02-9eee-af35c315f847"> + <name>poll_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>INTEGER</typeName> + </dataType> + </column> + <column id="da6ff948-7300-486d-8774-df02466a61fe"> + <name>name</name> + <dataType> + <typeCategory>VARCHAR</typeCategory> + <typeName>VARCHAR</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>64</size> + </adapter> + </dataType> + </column> + <column id="371d3819-5bcf-4252-a0eb-7f5088f97078"> + <name>create_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="8f8654f5-0cbe-4ede-ae2a-2c92a4b5ce91"> + <name>update_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="50f533f1-6858-443e-9a81-58a33c1cebb4"> + <name>delete_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + <notNull id="f7060984-8034-4d90-bd28-267d12856008"/> + </column> + <foreignKey id="1cc926da-7ec4-4dc3-80fc-4cbcfaeaedab"> + <name>fkey_t_choice_t_poll</name> + <columnRefs> + <columnRef ref="ed486bb5-eff9-4c02-9eee-af35c315f847"/> + </columnRefs> + <referenceColumns> + <columnRef ref="d26ecf33-a544-4c2c-b9fa-9af5b91e9060"/> + </referenceColumns> + </foreignKey> + </attributes> + <indexes/> + </table> + <table id="f0cf87cb-45ef-4938-8b07-c872ae218aeb"> + <name>t_vote</name> + <attributes> + <primaryKey id="e576cb42-2daa-46f3-b565-a99081ca939f"> + <columnRefs> + <columnRef ref="283a1ccf-a70d-41ec-ac09-a6229fe1d186"/> + </columnRefs> + </primaryKey> + <column id="283a1ccf-a70d-41ec-ac09-a6229fe1d186"> + <name>vote_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>SERIAL</typeName> + </dataType> + </column> + <column id="c5e28fd8-a85b-478b-9b4f-405ac916c569"> + <name>user_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>INTEGER</typeName> + </dataType> + </column> + <column id="dce2bf23-8ba2-4710-b670-f118d26fd89c"> + <name>poll_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>INTEGER</typeName> + </dataType> + </column> + <column id="4251e633-b24a-42b5-b27a-3ae031d07e0f"> + <name>choice_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>INTEGER</typeName> + </dataType> + </column> + <column id="d5d0c915-4865-4e93-84c0-5a499c71e775"> + <name>comment</name> + <dataType> + <typeCategory>VARCHAR</typeCategory> + <typeName>VARCHAR</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>255</size> + </adapter> + </dataType> + <notNull id="d1db3ec8-99c4-4266-aeaf-cd4ffe0409bb"/> + </column> + <column id="901d06c9-c848-4eb7-bab6-5e151f44b369"> + <name>create_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="e0a3343e-f6fe-4b74-a211-69539cefc7ca"> + <name>update_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="587add0e-dd99-4de8-9e9b-0e812ee96c78"> + <name>delete_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + <notNull id="755f38c1-ca97-44c1-aa3b-99e5a774e258"/> + </column> + <foreignKey id="f5e938be-cbdc-48e7-89c2-6b5ffc3401f6"> + <name>fkey_t_vote_t_choice</name> + <columnRefs> + <columnRef ref="4251e633-b24a-42b5-b27a-3ae031d07e0f"/> + </columnRefs> + <referenceColumns> + <columnRef ref="b4250286-aca5-4e4c-b53e-b87d025a1dcc"/> + </referenceColumns> + </foreignKey> + <foreignKey id="ea8bdf5f-551b-4b28-bee9-5fe915b41798"> + <name>fkey_t_vote_t_poll</name> + <columnRefs> + <columnRef ref="dce2bf23-8ba2-4710-b670-f118d26fd89c"/> + </columnRefs> + <referenceColumns> + <columnRef ref="d26ecf33-a544-4c2c-b9fa-9af5b91e9060"/> + </referenceColumns> + </foreignKey> + <foreignKey id="f1ed7208-dd57-4c62-a696-29fb97238cdf"> + <name>fkey_t_vote_t_user</name> + <columnRefs> + <columnRef ref="c5e28fd8-a85b-478b-9b4f-405ac916c569"/> + </columnRefs> + <referenceColumns> + <columnRef ref="2d284606-e85e-4d36-82a5-2ae41a5a217c"/> + </referenceColumns> + </foreignKey> + </attributes> + <indexes/> + </table> + <table id="164f8c6d-2cb2-41b9-9cfd-e9a427ba7b5a"> + <name>t_user</name> + <attributes> + <primaryKey id="69d30c73-58c1-4f3a-97f0-ae21fd6662ab"> + <columnRefs> + <columnRef ref="2d284606-e85e-4d36-82a5-2ae41a5a217c"/> + </columnRefs> + </primaryKey> + <column id="2d284606-e85e-4d36-82a5-2ae41a5a217c"> + <name>user_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>SERIAL</typeName> + </dataType> + </column> + <column id="4c87a68b-9e1a-4f38-b3f1-271a68005bc2"> + <name>username</name> + <dataType> + <typeCategory>VARCHAR</typeCategory> + <typeName>VARCHAR</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>32</size> + </adapter> + </dataType> + </column> + <column id="b3d320a7-1132-4ff4-99d3-a4eeea377a2e"> + <name>password</name> + <dataType> + <typeCategory>CHARACTER</typeCategory> + <typeName>CHARACTER</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>32</size> + </adapter> + </dataType> + </column> + <column id="6e1889a7-a905-49c0-b01c-8b9f2fee7044"> + <name>email</name> + <dataType> + <typeCategory>VARCHAR</typeCategory> + <typeName>VARCHAR</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>128</size> + </adapter> + </dataType> + </column> + <column id="59923310-4bd9-41c3-9fcd-1d7eecf2c6d4"> + <name>create_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="e0c91c68-c34a-4cce-b52b-2392353bee04"> + <name>update_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="b5b65a0c-a280-4ab9-ad80-ee03b27a07ab"> + <name>delete_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + <notNull id="0dfc5232-3728-4b5e-a7fc-9d4f66db33c2"/> + </column> + </attributes> + <indexes/> + </table> + <table id="7dfe455a-aab4-4365-bd15-3e6413e1641c"> + <name>t_poll</name> + <attributes> + <primaryKey id="7a6f13a2-854f-4664-95cb-79daa2d93937"> + <columnRefs> + <columnRef ref="d26ecf33-a544-4c2c-b9fa-9af5b91e9060"/> + </columnRefs> + </primaryKey> + <column id="d26ecf33-a544-4c2c-b9fa-9af5b91e9060"> + <name>poll_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>BIGSERIAL</typeName> + </dataType> + </column> + <column id="96391699-21d6-4b65-a5fa-f9bafdc76690"> + <name>title</name> + <dataType> + <typeCategory>VARCHAR</typeCategory> + <typeName>VARCHAR</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>128</size> + </adapter> + </dataType> + </column> + <column id="828692e7-2a09-4034-a1db-b74a1c4d645f"> + <name>description</name> + <dataType> + <typeCategory>CLOB</typeCategory> + <typeName>TEXT</typeName> + </dataType> + </column> + <column id="e1259958-5f19-492a-a209-422d395df36f"> + <name>conclusion</name> + <dataType> + <typeCategory>CLOB</typeCategory> + <typeName>TEXT</typeName> + </dataType> + <notNull id="57386832-6533-47b8-a515-4016d11bf956"/> + </column> + <column id="2bd90577-57d3-48d1-b09c-ed2df20f2562"> + <name>owner_id</name> + <dataType> + <typeCategory>INTEGER</typeCategory> + <typeName>INTEGER</typeName> + </dataType> + </column> + <column id="0e16b0f8-f5fc-40a5-ae80-3057f16ec298"> + <name>notified</name> + <dataType> + <typeCategory>BIT</typeCategory> + <typeName>BIT</typeName> + <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> + <size>1</size> + </adapter> + </dataType> + </column> + <column id="68abf31b-2f8f-4bdd-8d0e-492d971b095c"> + <name>open_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="cfa3e04b-2852-4c4b-82db-85c81e17bc4f"> + <name>close_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="dab7e031-f43f-4f13-82ae-66fabff12394"> + <name>create_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="7f961f8f-ed25-4b7e-9a6a-242122771602"> + <name>update_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + </column> + <column id="f40edea6-80c0-47af-99c9-c07d0a0a8038"> + <name>delete_ts</name> + <dataType> + <typeCategory>TIMESTAMP</typeCategory> + <typeName>TIMESTAMP</typeName> + </dataType> + <notNull id="5ace84ea-2de6-463b-9079-451a674a4d6e"/> + </column> + <foreignKey id="3b51b100-c5cc-4de7-ab32-bef031330dd7"> + <name>fkey_t_poll_t_user</name> + <columnRefs> + <columnRef ref="2bd90577-57d3-48d1-b09c-ed2df20f2562"/> + </columnRefs> + <referenceColumns> + <columnRef ref="2d284606-e85e-4d36-82a5-2ae41a5a217c"/> + </referenceColumns> + </foreignKey> + </attributes> + <indexes/> + </table> + </entities> + <dataSets/> + <view:diagramPresentations xmlns:view="http://jiemamy.org/xml/ns/view"> + <view:diagramPresentation id="6cff2706-7970-456d-b570-959780f54bf2"> + <name>default</name> + <view:mode>PHYSICAL</view:mode> + <view:level>ATTRTYPE</view:level> + <view:nodeProfiles> + <view:nodeProfile id="733ad66f-ed40-414c-9ede-33d232f0c186"> + <view:nodeObjectRef ref="8dedee12-dd59-464b-b354-231a9d1b8e74"/> + <view:boundary height="-1" width="-1" x="433" y="152"/> + </view:nodeProfile> + <view:nodeProfile id="8dfab88a-9fa7-456e-8738-1b71623c310f"> + <view:nodeObjectRef ref="f0cf87cb-45ef-4938-8b07-c872ae218aeb"/> + <view:boundary height="-1" width="-1" x="89" y="134"/> + </view:nodeProfile> + <view:nodeProfile id="a9bab55e-1e48-4433-b0e5-78203ca48f35"> + <view:nodeObjectRef ref="164f8c6d-2cb2-41b9-9cfd-e9a427ba7b5a"/> + <view:boundary height="-1" width="-1" x="85" y="436"/> + </view:nodeProfile> + <view:nodeProfile id="70026c58-6edc-43a6-8f34-16de03fcc650"> + <view:nodeObjectRef ref="7dfe455a-aab4-4365-bd15-3e6413e1641c"/> + <view:boundary height="-1" width="-1" x="426" y="400"/> + </view:nodeProfile> + <view:nodeProfile id="64f9e1a6-07c3-4e1c-8c0b-fed417a75c44"> + <view:sticky id="867d45f3-e43f-43e1-a264-4d80394e3d91"> + <view:contents>memo</view:contents> + </view:sticky> + <view:boundary height="-1" width="-1" x="56" y="31"/> + </view:nodeProfile> + </view:nodeProfiles> + <view:connectionProfiles> + <view:connectionProfile id="9c7bfd7a-a7a6-4763-85df-dc18414fd754"> + <view:connectionObjectRef ref="ea8bdf5f-551b-4b28-bee9-5fe915b41798"/> + </view:connectionProfile> + <view:connectionProfile id="b30dd748-950e-4f69-93ba-7eadb45654d2"> + <view:connectionObjectRef ref="f1ed7208-dd57-4c62-a696-29fb97238cdf"/> + </view:connectionProfile> + <view:connectionProfile id="1cf39b05-48db-4f89-935f-c443dd08c80d"> + <view:connectionObjectRef ref="f5e938be-cbdc-48e7-89c2-6b5ffc3401f6"/> + </view:connectionProfile> + <view:connectionProfile id="185bd1f0-bc17-4d59-8f07-7dffc61019be"> + <view:connectionObjectRef ref="1cc926da-7ec4-4dc3-80fc-4cbcfaeaedab"/> + </view:connectionProfile> + <view:connectionProfile id="6a8cb365-bf5a-4d77-9bd3-43cddd550c2b"> + <view:connectionObjectRef ref="3b51b100-c5cc-4de7-ab32-bef031330dd7"/> + </view:connectionProfile> + </view:connectionProfiles> + </view:diagramPresentation> + </view:diagramPresentations> +</jiemamy> Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java 2009-04-10 12:17:31 UTC (rev 3210) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -95,6 +95,7 @@ private Map<String, EntityModel> importedEntities; + /** データ型リゾルバ */ private DataTypeResolver dataTypeResolver; private ImportMetadataConfig config; @@ -266,4 +267,13 @@ return view; } + /** + * データ型リゾルバを取得する。 + * + * @return データ型リゾルバ + */ + protected DataTypeResolver getDataTypeResolver() { + return dataTypeResolver; + } + } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/enhance/FactoryExtension.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/enhance/FactoryExtension.java 2009-04-10 12:17:31 UTC (rev 3210) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/enhance/FactoryExtension.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -213,6 +213,14 @@ INSTANCE; public int compare(JiemamyElement o1, JiemamyElement o2) { + if (o1 == o2) { + return 0; + } + if (o1 == null) { + return -1; + } else if (o2 == null) { + return 1; + } int classNameComparison = o1.getClass().getName().compareTo(o2.getClass().getName()); if (classNameComparison != 0) { return classNameComparison; Modified: artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java =================================================================== --- artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java 2009-04-10 12:17:31 UTC (rev 3210) +++ artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -41,6 +41,7 @@ import org.jiemamy.dialect.BuiltinDataTypeMold; import org.jiemamy.dialect.internal.AbstractDialect; import org.jiemamy.dialect.internal.BuiltinDataTypeMoldImpl; +import org.jiemamy.dialect.internal.EntityImportVisitor; import org.jiemamy.dialect.internal.SqlEmitter; import org.jiemamy.dialect.internal.impl.DefaultDialectInitializer; import org.jiemamy.dialect.internal.impl.DefaultMoldManager; @@ -108,8 +109,18 @@ private SqlEmitter sqlEmitter; + private EntityImportVisitor entityImportVisitor; + @Override + public EntityImportVisitor getEntityImportVisitor() { + if (entityImportVisitor == null) { + entityImportVisitor = new PostgresqlEntityImportVisitor(); + } + return entityImportVisitor; + } + + @Override public SqlEmitter getSqlEmitter() { if (sqlEmitter == null) { sqlEmitter = new PostgreSqlEmitter(getDataTypeResolver()); Added: artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlEntityImportVisitor.java =================================================================== --- artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlEntityImportVisitor.java (rev 0) +++ artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlEntityImportVisitor.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -0,0 +1,67 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on 2009/04/10 + * + * This file is part of Jiemamy. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.jiemamy.dialect.postgresql; + +import java.sql.SQLException; +import java.util.List; + +import org.jiemamy.JiemamyFactory; +import org.jiemamy.dialect.internal.impl.DefaultEntityImportVisitor; +import org.jiemamy.model.attribute.ColumnModel; +import org.jiemamy.model.datatype.BuiltinDataType; +import org.jiemamy.model.datatype.DataTypeCategory; +import org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter; +import org.jiemamy.model.entity.TableModel; +import org.jiemamy.utils.StringUtil; +import org.jiemamy.utils.model.TableUtil; + +/** + * TODO for daisuke + * + * @author daisuke + */ +public class PostgresqlEntityImportVisitor extends DefaultEntityImportVisitor { + + @Override + protected TableModel createTable(final JiemamyFactory factory, String tableName) throws SQLException { + TableModel tableModel = super.createTable(factory, tableName); + + List<ColumnModel> columns = TableUtil.getColumns(tableModel); + for (ColumnModel columnModel : columns) { + if (columnModel.getDataType() instanceof BuiltinDataType) { + BuiltinDataType builtinDataType = (BuiltinDataType) columnModel.getDataType(); + if (builtinDataType.getCategory() == DataTypeCategory.INTEGER) { + String defaultValue = columnModel.getDefaultValue(); + if (StringUtil.isEmpty(defaultValue) == false && defaultValue.startsWith("nextval('") + && defaultValue.endsWith("_seq'::regclass)")) { + // TODO BIGSERIALの可能性は? + builtinDataType.setTypeName("SERIAL"); + } + } else if (builtinDataType.getCategory() == DataTypeCategory.VARCHAR) { + if (builtinDataType.getAdapter(SizedDataTypeAdapter.class).getSize() == 2147483647) { + builtinDataType.setCategory(DataTypeCategory.CLOB); + builtinDataType.setTypeName("TEXT"); + } + } + } + } + + return tableModel; + } +} Property changes on: artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlEntityImportVisitor.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: charon/jiemamy-jpa-exporter/trunk/src/main/java/org/jiemamy/composer/exporter/JpaExporter.java =================================================================== --- charon/jiemamy-jpa-exporter/trunk/src/main/java/org/jiemamy/composer/exporter/JpaExporter.java 2009-04-10 12:17:31 UTC (rev 3210) +++ charon/jiemamy-jpa-exporter/trunk/src/main/java/org/jiemamy/composer/exporter/JpaExporter.java 2009-04-10 12:34:16 UTC (rev 3211) @@ -35,8 +35,7 @@ } public String getName() { - // TODO Auto-generated method stub - return null; + return "JPA Exporter"; } }