[Jiemamy-notify:2131] commit [3211] テストデータファイル追加。 /

Back to archive index

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";
 	}
 	
 }



Jiemamy-notify メーリングリストの案内
Back to archive index