[Jiemamy-notify:1920] commit [3090] refactor

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 4月 4日 (土) 03:45:05 JST


Revision: 3090
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3090
Author:   daisuke_m
Date:     2009-04-04 03:45:05 +0900 (Sat, 04 Apr 2009)

Log Message:
-----------
refactor

Modified Paths:
--------------
    artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/internal/serializer/SerializationTest.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/Instruction.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/SqlExecuter.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/exporter/SqlExporterTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/test/TestModelBuilder2Test.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/AttributeUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ColumnUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/DataSetUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EntityUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EqualsUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ForeignKeyUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/TableUtilTest.java
    artemis/trunk/jiemamy-dialect-mysql/src/test/java/org/jiemamy/dialect/mysql/MySqlEmitterTest.java
    artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/test/ViewTestModelBuilder.java
    artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/connection/ConnectionModelImplTest.java
    artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/node/NodeModelImplTest.java

Added Paths:
-----------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder2.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleaner.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleanerTest.java

Removed Paths:
-------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder2.java


-------------- next part --------------
Modified: artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/internal/serializer/SerializationTest.java
===================================================================
--- artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/internal/serializer/SerializationTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/internal/serializer/SerializationTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -50,7 +50,7 @@
 import org.jiemamy.ArtemisView;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.JiemamyFactory;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.internal.test.ViewTestModelBuilder;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.attribute.AttributeModel;
@@ -105,7 +105,7 @@
 	@Test
 	public void test01_とりあえずXMLに書き込んでみる() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(new ArtemisView()));
-		TestModelBuilder mb = new ViewTestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new ViewTestModelBuilder(jiemamy);
 		mb.build();
 		JiemamyFactory factory = jiemamy.getFactory();
 		JiemamySerializer serializer = jiemamy.getSerializer();

Copied: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder.java (from rev 3087, artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java)
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -0,0 +1,768 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/01/22
+ *
+ * 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.internal.test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.jiemamy.Artemis;
+import org.jiemamy.InstanceProvider;
+import org.jiemamy.Jiemamy;
+import org.jiemamy.JiemamyFactory;
+import org.jiemamy.dialect.Dialect;
+import org.jiemamy.internal.model.attribute.RepresentationAdapter;
+import org.jiemamy.internal.model.datatype.adapter.SerialDataTypeAdapter;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.attribute.constraint.ColumnCheckConstraint;
+import org.jiemamy.model.attribute.constraint.Deferrability;
+import org.jiemamy.model.attribute.constraint.ForeignKey;
+import org.jiemamy.model.attribute.constraint.NotNullConstraint;
+import org.jiemamy.model.attribute.constraint.PrimaryKey;
+import org.jiemamy.model.attribute.constraint.Deferrability.InitiallyCheckTime;
+import org.jiemamy.model.attribute.constraint.ForeignKey.ReferentialAction;
+import org.jiemamy.model.dataset.DataSetModel;
+import org.jiemamy.model.dataset.RecordModel;
+import org.jiemamy.model.datatype.DataTypeCategory;
+import org.jiemamy.model.datatype.DomainModel;
+import org.jiemamy.model.entity.TableModel;
+import org.jiemamy.model.entity.ViewModel;
+import org.jiemamy.model.index.IndexColumnModel;
+import org.jiemamy.model.index.IndexModel;
+import org.jiemamy.model.index.IndexColumnModel.SortOrder;
+import org.jiemamy.utils.CollectionsUtil;
+import org.jiemamy.utils.Disablable;
+import org.jiemamy.utils.builder.DataTypeBuilderImpl;
+import org.jiemamy.utils.model.ColumnUtil;
+import org.jiemamy.utils.model.DataSetUtil;
+import org.jiemamy.utils.model.ForeignKeyUtil;
+import org.jiemamy.utils.model.KeyConstraintUtil;
+import org.jiemamy.utils.model.RecordUtil;
+
+/**
+ * Jiemamyテストモデル1(EMP-DEPTテーブル)を組み立てるビルダ。
+ * 
+ * @author daisuke
+ */
+public class CoreTestModelBuilder implements TestModelBuilder {
+	
+	private static final String ID_1 = "1";
+	
+	private static final String ID_2 = "2";
+	
+	private static final String ID_3 = "3";
+	
+	private static final String ID_4 = "4";
+	
+	private static final String DIALECT_CLASS_NAME = "org.jiemamy.dialect.mysql.MySqlDialect";
+	
+	// ---- basics
+	
+	/** UUID生成戦略 */
+	public final UuidStrategy uuid;
+	
+	/** 生成方針 */
+	public final Instruction instruction;
+	
+	/** 生成するモデルのインスタンス空間 */
+	public final Jiemamy jiemamy;
+	
+	/** 生成に使用するファクトリ */
+	public final JiemamyFactory factory;
+	
+	/** 生成したモデル */
+	public final RootModel rootModel;
+	
+	// ---- models
+	
+	/** 生成したモデル */
+	public DomainModel domainId;
+	
+	/** 生成したモデル */
+	public DomainModel domainName;
+	
+	// dept
+	
+	/** 生成したモデル */
+	public TableModel tableDept;
+	
+	/** 生成したモデル */
+	public ColumnModel deptId;
+	
+	/** 生成したモデル */
+	public ColumnModel deptDeptNo;
+	
+	/** 生成したモデル */
+	public ColumnModel deptDeptName;
+	
+	/** 生成したモデル */
+	public ColumnModel deptLoc;
+	
+	/** 生成したモデル */
+	public PrimaryKey deptPk;
+	
+	// emp
+	
+	/** 生成したモデル */
+	public TableModel tableEmp;
+	
+	/** 生成したモデル */
+	public ColumnModel empId;
+	
+	/** 生成したモデル */
+	public ColumnModel empEmpNo;
+	
+	/** 生成したモデル */
+	
+	public ColumnModel empEmpName;
+	
+	/** 生成したモデル */
+	public ColumnModel empMgrId;
+	
+	/** 生成したモデル */
+	public ColumnModel empHiredate;
+	
+	/** 生成したモデル */
+	public ColumnModel empSal;
+	
+	/** 生成したモデル */
+	public ColumnModel empDeptId;
+	
+	/** 生成したモデル */
+	public PrimaryKey empPk;
+	
+	// highSal
+	
+	/** 生成したモデル */
+	public ViewModel viewHighSal;
+	
+	// fk
+	
+	/** 生成したモデル */
+	public ForeignKey fkEmpEmp;
+	
+	/** 生成したモデル */
+	public ForeignKey fkEmpDept;
+	
+	private IndexModel empNameIndex;
+	
+
+	/**
+	 * インスタンスを生成する。
+	 */
+	public CoreTestModelBuilder() {
+		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param dialectProvider SQL方言プロバイダ
+	 */
+	public CoreTestModelBuilder(InstanceProvider<Dialect> dialectProvider) {
+		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance(new Artemis(), dialectProvider));
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param instruction 設定オブジェクト
+	 */
+	public CoreTestModelBuilder(Instruction instruction) {
+		this(UuidStrategy.FIXED, instruction, Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param instruction 設定オブジェクト
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder(Instruction instruction, Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, instruction, jiemamy);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder(Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, new Instruction(), jiemamy);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 */
+	public CoreTestModelBuilder(UuidStrategy uuid) {
+		this(uuid, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param instruction 設定オブジェクト
+	 */
+	public CoreTestModelBuilder(UuidStrategy uuid, Instruction instruction) {
+		this(uuid, instruction, Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param instruction 設定オブジェクト
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder(UuidStrategy uuid, Instruction instruction, Jiemamy jiemamy) {
+		this.uuid = uuid;
+		this.instruction = instruction;
+		this.jiemamy = jiemamy;
+		factory = jiemamy.getFactory();
+		
+		if (factory.hasRootModel() && uuid == UuidStrategy.FIXED) {
+			throw new IllegalArgumentException();
+		}
+		rootModel = jiemamy.getFactory().getRootModel(uuid.get("d5a96af3-b1e9-4285-a8ef-c491ce5ae308"));
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder(UuidStrategy uuid, Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	public Jiemamy build() {
+		rootModel.setDialectClassName(DIALECT_CLASS_NAME);
+		rootModel.setBeginScript("BEGIN;");
+		rootModel.setEndScript("COMMIT;");
+		rootModel.setDescription("Jiemamyテストモデル1");
+		rootModel.setSchemaName("FOO");
+		
+		createDomains();
+		createEntities();
+		createForeignKeys();
+		createDataSets();
+		
+		return jiemamy;
+	}
+	
+	/**
+	 * ビルドしたモデルを持つJiemamyオブジェクトを取得する。
+	 * 
+	 * @return Jiemamyオブジェクト
+	 */
+	public Jiemamy getJiemamy() {
+		return jiemamy;
+	}
+	
+	/**
+	 * データセットを生成する。
+	 */
+	protected void createDataSets() {
+		if (instruction.supressUseDataSet) {
+			return;
+		}
+		// データセットの生成・追加(1)
+		DataSetModel dataSetEn = factory.newModel(DataSetModel.class, uuid.get("b73100b5-2d70-4b48-a825-311eacb63b2f"));
+		dataSetEn.setName("データ群en");
+		DataSetUtil.setRecord(dataSetEn, tableDept, createDataSetEnDept());
+		DataSetUtil.setRecord(dataSetEn, tableEmp, createDataSetEnEmp());
+		rootModel.getDataSets().add(dataSetEn);
+		
+		// データセットの生成・追加(2)
+		DataSetModel dataSetJa = factory.newModel(DataSetModel.class, uuid.get("91246ed4-1ef3-440e-bf12-40fa4439a71b"));
+		dataSetJa.setName("データ群ja");
+		DataSetUtil.setRecord(dataSetJa, tableDept, createDataSetJaDept());
+		DataSetUtil.setRecord(dataSetJa, tableEmp, createDataSetJaEmp());
+		rootModel.getDataSets().add(dataSetJa);
+	}
+	
+	/**
+	 * ドメインを生成する。
+	 */
+	protected void createDomains() {
+		if (instruction.supressUseDomain) {
+			return;
+		}
+		
+		domainId = factory.newModel(DomainModel.class, uuid.get("2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"));
+		domainId.setName("ID");
+		domainId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		NotNullConstraint notNull =
+				factory.newModel(NotNullConstraint.class, uuid.get("af4845dc-7f3a-434d-b5ac-2f25b74d7e76"));
+		domainId.setNotNullConstraint(notNull);
+		ColumnCheckConstraint check =
+				factory.newModel(ColumnCheckConstraint.class, uuid.get("48b76d76-b288-480a-afa4-111247379f8d"));
+		check.setName("hoge");
+		check.setExpression("VALUE > 0");
+		domainId.setCheckConstraint(check);
+		domainId.getDataType().getAdapter(SerialDataTypeAdapter.class).setSerial(true);
+		rootModel.getDomains().add(domainId);
+		
+		domainName = factory.newModel(DomainModel.class, uuid.get("62f1e6ec-e6aa-4d52-a6c3-27dac086f2d7"));
+		domainName.setName("NAME");
+		domainName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
+		domainName.setDescription("人名用の型です。");
+		rootModel.getDomains().add(domainName);
+	}
+	
+	/**
+	 * エンティティを生成する。
+	 */
+	protected void createEntities() {
+		createTableDept();
+		rootModel.getEntities().add(tableDept);
+		createTableEmp();
+		rootModel.getEntities().add(tableEmp);
+		createViewHighSal();
+		rootModel.getEntities().add(viewHighSal);
+	}
+	
+	/**
+	 * 外部キーを生成する。
+	 */
+	protected void createForeignKeys() {
+		if (instruction.supressUseForeignKey) {
+			return;
+		}
+		
+		int pkIndex = tableEmp.getAttributes().indexOf(empPk);
+		
+		fkEmpEmp = factory.newModel(ForeignKey.class, uuid.get("e43d3c43-33c8-4b02-aa42-83f2d868cfe6"));
+		fkEmpEmp.setName("emp_mgr_id_fkey");
+		KeyConstraintUtil.addKeyColumn(fkEmpEmp, empMgrId);
+		ForeignKeyUtil.addReferenceColumn(fkEmpEmp, empId);
+		fkEmpEmp.setOnDelete(ReferentialAction.SET_NULL);
+		Deferrability deferrability =
+				factory.newModel(Deferrability.class, uuid.get("9af096ba-8841-41ba-9dd4-02628b800bf0"));
+		deferrability.setDeferrable(true);
+		deferrability.setInitiallyCheckTime(InitiallyCheckTime.DEFERRED);
+		fkEmpEmp.setDeferrability(deferrability);
+		tableEmp.getAttributes().add(pkIndex + 1, fkEmpEmp);
+		
+		fkEmpDept = factory.newModel(ForeignKey.class, uuid.get("e7dd92b4-1d97-4be6-bab6-fa9fe26eb6ed"));
+		fkEmpDept.setName("emp_dept_id_fkey");
+		KeyConstraintUtil.addKeyColumn(fkEmpDept, empDeptId);
+		ForeignKeyUtil.addReferenceColumn(fkEmpDept, deptId);
+		tableEmp.getAttributes().add(pkIndex + 2, fkEmpDept);
+	}
+	
+	private List<RecordModel> createDataSetEnDept() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("176bfb08-99cb-4c76-bf8e-6979e0c7afb9"));
+		RecordUtil.addValue(record, deptId, ID_1);
+		RecordUtil.addValue(record, deptDeptNo, "10");
+		RecordUtil.addValue(record, deptDeptName, "ACCOUNTING");
+		RecordUtil.addValue(record, deptLoc, "NEW YORK");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("3971430b-ef1d-4e5a-b996-f2acfa7536c0"));
+		RecordUtil.addValue(record, deptId, ID_2);
+		RecordUtil.addValue(record, deptDeptNo, "20");
+		RecordUtil.addValue(record, deptDeptName, "RESEARCH");
+		RecordUtil.addValue(record, deptLoc, "DALLAS");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("0591cc1e-45a6-4598-b85a-20fae51b7991"));
+		RecordUtil.addValue(record, deptId, ID_3);
+		RecordUtil.addValue(record, deptDeptNo, "30");
+		RecordUtil.addValue(record, deptDeptName, "SALES");
+		RecordUtil.addValue(record, deptLoc, "CHICAGO");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("ac275955-4710-484a-b694-f7acc6ded08f"));
+		RecordUtil.addValue(record, deptId, ID_4);
+		RecordUtil.addValue(record, deptDeptNo, "40");
+		RecordUtil.addValue(record, deptDeptName, "OPERATIONS");
+		RecordUtil.addValue(record, deptLoc, "BOSTON");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetEnEmp() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("6ce22d69-bd75-4822-946f-a51221fd45eb"));
+		RecordUtil.addValue(record, empId, ID_1);
+		RecordUtil.addValue(record, empEmpNo, "10");
+		RecordUtil.addValue(record, empEmpName, "SMITH");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2003-02-01");
+		RecordUtil.addValue(record, empSal, "40");
+		RecordUtil.addValue(record, empDeptId, ID_3);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("03962eb2-90ab-4cff-8fac-14e52e117361"));
+		RecordUtil.addValue(record, empId, ID_2);
+		RecordUtil.addValue(record, empEmpNo, "20");
+		RecordUtil.addValue(record, empEmpName, "ALLEN");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2000-03-04");
+		RecordUtil.addValue(record, empSal, "50");
+		RecordUtil.addValue(record, empDeptId, ID_4);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("f5f16c1e-4a41-4ccd-9c87-00c09c0e7609"));
+		RecordUtil.addValue(record, empId, ID_3);
+		RecordUtil.addValue(record, empEmpNo, "30");
+		RecordUtil.addValue(record, empEmpName, "WARD");
+//		RecordUtil.addValue(record, empMgrId, null);
+		RecordUtil.addValue(record, empHiredate, "1993-12-05");
+		RecordUtil.addValue(record, empSal, "60");
+		RecordUtil.addValue(record, empDeptId, ID_4);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("03a9e57f-3010-4d46-8024-1915c262749e"));
+		RecordUtil.addValue(record, empId, ID_4);
+		RecordUtil.addValue(record, empEmpNo, "40");
+		RecordUtil.addValue(record, empEmpName, "JONES");
+		RecordUtil.addValue(record, empMgrId, ID_2);
+		RecordUtil.addValue(record, empHiredate, "2007-04-01");
+		RecordUtil.addValue(record, empSal, "36");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("4206acce-b31f-4c2e-8682-4796254a4dca"));
+		RecordUtil.addValue(record, empId, "5");
+		RecordUtil.addValue(record, empEmpNo, "50");
+		RecordUtil.addValue(record, empEmpName, "MARTIN");
+		RecordUtil.addValue(record, empMgrId, ID_1);
+		RecordUtil.addValue(record, empHiredate, "2002-05-30");
+		RecordUtil.addValue(record, empSal, "30");
+		RecordUtil.addValue(record, empDeptId, ID_3);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("6748ce0e-462d-44df-a536-18f14a3c2643"));
+		RecordUtil.addValue(record, empId, "6");
+		RecordUtil.addValue(record, empEmpNo, "60");
+		RecordUtil.addValue(record, empEmpName, "BLAKE");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2007-04-01");
+		RecordUtil.addValue(record, empSal, "25");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("f8564bdf-f61c-4711-b606-69aed74324a6"));
+		RecordUtil.addValue(record, empId, "7");
+		RecordUtil.addValue(record, empEmpNo, "70");
+		RecordUtil.addValue(record, empEmpName, "CLARK");
+		RecordUtil.addValue(record, empMgrId, ID_1);
+		RecordUtil.addValue(record, empHiredate, "2004-09-01");
+		RecordUtil.addValue(record, empSal, "30");
+		RecordUtil.addValue(record, empDeptId, ID_1);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("dd1cc8e1-7562-4539-86d8-5390d043325a"));
+		RecordUtil.addValue(record, empId, "8");
+		RecordUtil.addValue(record, empEmpNo, "80");
+		RecordUtil.addValue(record, empEmpName, "SCOTT");
+		RecordUtil.addValue(record, empMgrId, ID_4);
+		RecordUtil.addValue(record, empHiredate, "2008-03-01");
+		RecordUtil.addValue(record, empSal, "25");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaDept() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("61671217-d61c-4f42-9985-4f6b2c970171"));
+		RecordUtil.addValue(record, deptId, ID_1);
+		RecordUtil.addValue(record, deptDeptNo, "10");
+		RecordUtil.addValue(record, deptDeptName, "経理部");
+		RecordUtil.addValue(record, deptLoc, "広島");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("171d019e-163f-42f6-82dc-15340798fdf4"));
+		RecordUtil.addValue(record, deptId, ID_2);
+		RecordUtil.addValue(record, deptDeptNo, "20");
+		RecordUtil.addValue(record, deptDeptName, "研究開発部");
+		RecordUtil.addValue(record, deptLoc, "京都");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("838344e6-093d-4202-aaca-bacf1a7ff376"));
+		RecordUtil.addValue(record, deptId, ID_3);
+		RecordUtil.addValue(record, deptDeptNo, "30");
+		RecordUtil.addValue(record, deptDeptName, "営業部");
+		RecordUtil.addValue(record, deptLoc, "東京");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("2f29bb19-0a20-4251-8052-568194e6101c"));
+		RecordUtil.addValue(record, deptId, ID_4);
+		RecordUtil.addValue(record, deptDeptNo, "40");
+		RecordUtil.addValue(record, deptDeptName, "経営本部");
+		// locは指定せず、特定しない状態
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaEmp() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("9365e670-1eff-4a23-90bd-f794b9742b10"));
+		RecordUtil.addValue(record, empId, ID_1);
+		RecordUtil.addValue(record, empEmpNo, "10");
+		RecordUtil.addValue(record, empEmpName, "鈴木 茂");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2003-02-01");
+		RecordUtil.addValue(record, empSal, "40");
+		RecordUtil.addValue(record, empDeptId, ID_3);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("90673863-ba77-461b-ab82-fffecd7e873b"));
+		RecordUtil.addValue(record, empId, ID_2);
+		RecordUtil.addValue(record, empEmpNo, "20");
+		RecordUtil.addValue(record, empEmpName, "内海 透");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2000-03-04");
+		RecordUtil.addValue(record, empSal, "50");
+		RecordUtil.addValue(record, empDeptId, ID_4);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("5bf32699-c2ff-4d96-9e26-2a3f3d7c7661"));
+		RecordUtil.addValue(record, empId, ID_3);
+		RecordUtil.addValue(record, empEmpNo, "30");
+		RecordUtil.addValue(record, empEmpName, "村瀬 武彦");
+//		RecordUtil.addValue(record, empMgrId, null);
+		RecordUtil.addValue(record, empHiredate, "1993-12-05");
+		RecordUtil.addValue(record, empSal, "60");
+		RecordUtil.addValue(record, empDeptId, ID_4);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("f164796f-ed85-48a0-98af-2f6045ee3a33"));
+		RecordUtil.addValue(record, empId, ID_4);
+		RecordUtil.addValue(record, empEmpNo, "40");
+		RecordUtil.addValue(record, empEmpName, "近藤 美樹");
+		RecordUtil.addValue(record, empMgrId, ID_2);
+		RecordUtil.addValue(record, empHiredate, "2007-04-01");
+		RecordUtil.addValue(record, empSal, "36");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("c10562ee-4ab9-40a5-8a21-83f331df5c85"));
+		RecordUtil.addValue(record, empId, "5");
+		RecordUtil.addValue(record, empEmpNo, "50");
+		RecordUtil.addValue(record, empEmpName, "榊 美子");
+		RecordUtil.addValue(record, empMgrId, ID_1);
+		RecordUtil.addValue(record, empHiredate, "2002-05-30");
+		RecordUtil.addValue(record, empSal, "30");
+		RecordUtil.addValue(record, empDeptId, ID_3);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("29c9a655-f4ed-4753-aea6-1e21cb28f891"));
+		RecordUtil.addValue(record, empId, "6");
+		RecordUtil.addValue(record, empEmpNo, "60");
+		RecordUtil.addValue(record, empEmpName, "三浦 佑");
+		RecordUtil.addValue(record, empMgrId, ID_3);
+		RecordUtil.addValue(record, empHiredate, "2007-04-01");
+		RecordUtil.addValue(record, empSal, "25");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("b65b9b12-bb68-4845-a514-a57f0bd57616"));
+		RecordUtil.addValue(record, empId, "7");
+		RecordUtil.addValue(record, empEmpNo, "70");
+		RecordUtil.addValue(record, empEmpName, "前島 孝幸");
+		RecordUtil.addValue(record, empMgrId, ID_1);
+		RecordUtil.addValue(record, empHiredate, "2004-09-01");
+		RecordUtil.addValue(record, empSal, "30");
+		RecordUtil.addValue(record, empDeptId, ID_1);
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("0eb27151-323a-4679-bde4-0b01f561139f"));
+		RecordUtil.addValue(record, empId, "8");
+		RecordUtil.addValue(record, empEmpNo, "80");
+		RecordUtil.addValue(record, empEmpName, "島崎 由比");
+		RecordUtil.addValue(record, empMgrId, ID_4);
+		RecordUtil.addValue(record, empHiredate, "2008-03-01");
+		RecordUtil.addValue(record, empSal, "25");
+		RecordUtil.addValue(record, empDeptId, ID_2);
+		result.add(record);
+		
+		return result;
+	}
+	
+	private void createTableDept() {
+		tableDept = factory.newModel(TableModel.class, uuid.get("d7489ed6-0add-443d-95cf-234376eb0455"));
+		tableDept.setName("T_DEPT");
+		tableDept.setBeginScript("/* test begin script */");
+		tableDept.setDescription("部署マスタです。");
+		
+		deptId = factory.newModel(ColumnModel.class, uuid.get("c7ed225d-92a6-4cc2-90de-60531804464e"));
+		deptId.setName("ID");
+		if (instruction.supressUseDomain) {
+			deptId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(deptId, domainId);
+		}
+		deptId.setLogicalName("部署ID");
+		deptPk = factory.newModel(PrimaryKey.class, uuid.get("8de55e65-ec48-467a-bac5-8eee2d71d41c"));
+		deptPk.setName("dept_pkey");
+		deptPk.getKeyColumns().add(factory.newReference(deptId));
+		deptId.setPrimaryKey(deptPk);
+		tableDept.getAttributes().add(deptId);
+		
+		deptDeptNo = factory.newModel(ColumnModel.class, uuid.get("2d951389-6bc7-49d7-8631-1d26fe17047e"));
+		deptDeptNo.setName("DEPT_NO");
+		deptDeptNo.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		deptDeptNo.setLogicalName("部署番号");
+		tableDept.getAttributes().add(deptDeptNo);
+		
+		deptDeptName = factory.newModel(ColumnModel.class, uuid.get("1fcd63d3-974e-4d2e-a0d8-3b9c233104d9"));
+		deptDeptName.setName("DEPT_NAME");
+		deptDeptName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
+		deptDeptName.setLogicalName("部署名");
+		deptDeptName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
+		tableDept.getAttributes().add(deptDeptName);
+		
+		deptLoc = factory.newModel(ColumnModel.class, uuid.get("7bf79e76-07b8-43b6-a993-b8ef374a31f5"));
+		deptLoc.setName("LOC");
+		deptLoc.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
+		deptLoc.setLogicalName("ロケーション");
+		deptLoc.setDefaultValue("secret");
+		tableDept.getAttributes().add(deptLoc);
+		
+		Map<UUID, UUID> columnNotNullMap = CollectionsUtil.newHashMap();
+		columnNotNullMap.put(deptDeptNo.getId(), uuid.get("cc709f63-a886-4207-a316-58ad7f279e10"));
+		columnNotNullMap.put(deptDeptName.getId(), uuid.get("fab2f883-0489-4661-bd57-f04286188eef"));
+		
+		for (ColumnModel columnModel : Arrays.asList(deptDeptNo, deptDeptName)) {
+			NotNullConstraint notNull =
+					factory.newModel(NotNullConstraint.class, columnNotNullMap.get(columnModel.getId()));
+			columnModel.setNotNullConstraint(notNull);
+		}
+	}
+	
+	private void createTableEmp() {
+		tableEmp = factory.newModel(TableModel.class, uuid.get("9f522e56-809c-45fd-8416-39201014218b"));
+		tableEmp.setName("T_EMP");
+		tableEmp.setLogicalName("従業員");
+		tableEmp.setBeginScript("/* test end script */");
+		tableEmp.setDescription("従業員マスタです。");
+		
+		empId = factory.newModel(ColumnModel.class, uuid.get("44c8e93d-b7ad-46cc-9b29-88c3a7d6c33e"));
+		empId.setName("ID");
+		if (instruction.supressUseDomain) {
+			empId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(empId, domainId);
+		}
+		empId.setLogicalName("従業員ID");
+		tableEmp.getAttributes().add(empId);
+		
+		empEmpNo = factory.newModel(ColumnModel.class, uuid.get("248a429b-2159-4ebd-a791-eee42a059374"));
+		empEmpNo.setName("EMP_NO");
+		empEmpNo.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		empEmpNo.setLogicalName("従業員番号");
+		NotNullConstraint notNullEmpEmpNo =
+				factory.newModel(NotNullConstraint.class, uuid.get("05ee4c06-d8b5-4599-a7e9-1cda036ea2c7"));
+		notNullEmpEmpNo.getAdapter(Disablable.class).setDisabled(true);
+		empEmpNo.setNotNullConstraint(notNullEmpEmpNo);
+		tableEmp.getAttributes().add(empEmpNo);
+		
+		empEmpName = factory.newModel(ColumnModel.class, uuid.get("0e51b6df-43ab-408c-90ef-de13c6aab881"));
+		empEmpName.setName("EMP_NAME");
+		if (instruction.supressUseDomain) {
+			empEmpName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
+		} else {
+			ColumnUtil.setDataType(empEmpName, domainName);
+		}
+		empEmpName.setLogicalName("従業員名");
+		empEmpName.setDefaultValue("no name");
+		empEmpName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
+		tableEmp.getAttributes().add(empEmpName);
+		
+		empMgrId = factory.newModel(ColumnModel.class, uuid.get("3d21a85a-72de-41b3-99dd-f4cb94e58d84"));
+		empMgrId.setName("MGR_ID");
+		empMgrId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		empMgrId.setLogicalName("上司ID");
+		tableEmp.getAttributes().add(empMgrId);
+		
+		empHiredate = factory.newModel(ColumnModel.class, uuid.get("f0b57eed-98ab-4c21-9855-218c592814dc"));
+		empHiredate.setName("HIREDATE");
+		empHiredate.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.DATE).build());
+		tableEmp.getAttributes().add(empHiredate);
+		
+		empSal = factory.newModel(ColumnModel.class, uuid.get("80786549-dc2c-4c1c-bcbd-9f6fdec911d2"));
+		empSal.setName("SAL");
+		empSal.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.NUMERIC).setPrecision(7).setScale(2)
+			.build());
+		tableEmp.getAttributes().add(empSal);
+		
+		ColumnCheckConstraint checkConstraint =
+				factory.newModel(ColumnCheckConstraint.class, uuid.get("873f6660-7a61-4c2c-87a0-e922fa03b88c"));
+		checkConstraint.setName("positive_sal");
+		checkConstraint.setExpression("SAL >= 0");
+		empSal.setCheckConstraint(checkConstraint);
+		
+		empDeptId = factory.newModel(ColumnModel.class, uuid.get("4ae69b7a-7a0e-422a-89dc-0f0cff77565b"));
+		empDeptId.setName("DEPT_ID");
+		empDeptId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		tableEmp.getAttributes().add(empDeptId);
+		
+		empPk = factory.newModel(PrimaryKey.class, uuid.get("6145e6a0-9ff7-4033-999d-99d80392a48f"));
+		empPk.setName("emp_pkey");
+		empPk.getKeyColumns().add(factory.newReference(empId));
+		tableEmp.getAttributes().add(empPk);
+		
+		Map<UUID, UUID> columnNotNullMap = CollectionsUtil.newHashMap();
+		columnNotNullMap.put(empEmpName.getId(), uuid.get("41f178b9-2cb5-4dad-a6c0-48df2d5b1300"));
+		columnNotNullMap.put(empHiredate.getId(), uuid.get("2d66fd73-8d6b-41d8-b6b8-daec7d6c0c53"));
+		columnNotNullMap.put(empSal.getId(), uuid.get("a446779a-4fb6-4a0f-8262-22daae856e85"));
+		columnNotNullMap.put(empDeptId.getId(), uuid.get("b9a0fdce-a965-4118-ae71-5dc7150f6d4e"));
+		
+		for (ColumnModel columnModel : Arrays.asList(empEmpName, empHiredate, empSal, empDeptId)) {
+			NotNullConstraint notNull =
+					factory.newModel(NotNullConstraint.class, columnNotNullMap.get(columnModel.getId()));
+			columnModel.setNotNullConstraint(notNull);
+		}
+		
+		empNameIndex = factory.newModel(IndexModel.class, uuid.get("9abc9e01-4cdb-42fe-a495-93b56af35a1d"));
+		empNameIndex.setName("IDX_EMP_NAME");
+		IndexColumnModel indexColumnModel =
+				factory.newModel(IndexColumnModel.class, uuid.get("52d2b6aa-fff7-4c33-af13-f4d0b63e8e58"));
+		indexColumnModel.setColumnRef(factory.newReference(empEmpName));
+		indexColumnModel.setSortOrder(SortOrder.DESC);
+		empNameIndex.getIndexColumns().add(indexColumnModel);
+		tableEmp.getIndexes().add(empNameIndex);
+	}
+	
+	private void createViewHighSal() {
+		viewHighSal = factory.newModel(ViewModel.class, uuid.get("516f7961-cb7b-48e2-990b-7fb0c750c3a4"));
+		viewHighSal.setName("V_HIGH_SAL_EMP");
+		viewHighSal.setDefinition("SELECT * FROM T_EMP WHERE SAL > 2000;");
+		viewHighSal.setLogicalName("高給取り");
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Copied: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder2.java (from rev 3087, artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder2.java)
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder2.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder2.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -0,0 +1,824 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/01/22
+ *
+ * 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.internal.test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.jiemamy.Jiemamy;
+import org.jiemamy.JiemamyFactory;
+import org.jiemamy.internal.model.attribute.RepresentationAdapter;
+import org.jiemamy.internal.model.datatype.adapter.SerialDataTypeAdapter;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.attribute.constraint.Deferrability;
+import org.jiemamy.model.attribute.constraint.ForeignKey;
+import org.jiemamy.model.attribute.constraint.NotNullConstraint;
+import org.jiemamy.model.attribute.constraint.PrimaryKey;
+import org.jiemamy.model.attribute.constraint.Deferrability.InitiallyCheckTime;
+import org.jiemamy.model.attribute.constraint.ForeignKey.ReferentialAction;
+import org.jiemamy.model.dataset.DataSetModel;
+import org.jiemamy.model.dataset.RecordModel;
+import org.jiemamy.model.datatype.DataTypeCategory;
+import org.jiemamy.model.datatype.DomainModel;
+import org.jiemamy.model.entity.TableModel;
+import org.jiemamy.utils.builder.DataTypeBuilderImpl;
+import org.jiemamy.utils.model.ColumnUtil;
+import org.jiemamy.utils.model.DataSetUtil;
+import org.jiemamy.utils.model.ForeignKeyUtil;
+import org.jiemamy.utils.model.KeyConstraintUtil;
+import org.jiemamy.utils.model.RecordUtil;
+
+/**
+ * Jiemamyテストモデル1(ORDERテーブル)を組み立てるビルダ。
+ * 
+ * @author daisuke
+ */
+public class CoreTestModelBuilder2 implements TestModelBuilder {
+	
+	private static final String ID_1 = "1";
+	
+	private static final String ID_2 = "2";
+	
+	private static final String ID_3 = "3";
+	
+	private static final String ID_4 = "4";
+	
+	private static final String DIALECT_CLASS_NAME = "org.jiemamy.dialect.mysql.MySqlDialect";
+	
+	// ---- basics
+	
+	/** UUID生成戦略 */
+	public final UuidStrategy uuid;
+	
+	/** 生成方針 */
+	public final Instruction instruction;
+	
+	/** 生成するモデルのインスタンス空間 */
+	public final Jiemamy jiemamy;
+	
+	/** 生成に使用するファクトリ */
+	public final JiemamyFactory factory;
+	
+	/** 生成したモデル */
+	public final RootModel rootModel;
+	
+	// ---- models
+	
+	/** 生成したモデル */
+	public DomainModel idDomain;
+	
+	/** 生成したモデル */
+	public DomainModel nameDomain;
+	
+	// item
+	
+	/** 生成したモデル */
+	public TableModel tableItem;
+	
+	/** 生成したモデル */
+	public ColumnModel itemId;
+	
+	/** 生成したモデル */
+	public ColumnModel itemName;
+	
+	/** 生成したモデル */
+	public ColumnModel itemPrice;
+	
+	/** 生成したモデル */
+	public PrimaryKey itemPk;
+	
+	// user
+	
+	/** 生成したモデル */
+	public TableModel tableUser;
+	
+	/** 生成したモデル */
+	public ColumnModel userId;
+	
+	/** 生成したモデル */
+	public ColumnModel userName;
+	
+	/** 生成したモデル */
+	public PrimaryKey userPk;
+	
+	// order
+	
+	/** 生成したモデル */
+	public TableModel tableOrder;
+	
+	/** 生成したモデル */
+	public ColumnModel orderId;
+	
+	/** 生成したモデル */
+	public ColumnModel orderUserId;
+	
+	/** 生成したモデル */
+	public ColumnModel orderDate;
+	
+	/** 生成したモデル */
+	public PrimaryKey orderPk;
+	
+	// detail
+	
+	/** 生成したモデル */
+	public TableModel tableDetail;
+	
+	/** 生成したモデル */
+	public ColumnModel detailId;
+	
+	/** 生成したモデル */
+	public ColumnModel detailOrderId;
+	
+	/** 生成したモデル */
+	public ColumnModel detailItemId;
+	
+	/** 生成したモデル */
+	public ColumnModel detailQuantity;
+	
+	/** 生成したモデル */
+	public PrimaryKey detailPk;
+	
+	// fk
+	
+	/** 生成したモデル */
+	public ForeignKey fkDetailItem;
+	
+	/** 生成したモデル */
+	public ForeignKey fkDetailOrder;
+	
+	/** 生成したモデル */
+	public ForeignKey fkOrderUser;
+	
+
+	/**
+	 * インスタンスを生成する。
+	 */
+	public CoreTestModelBuilder2() {
+		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param instruction 設定オブジェクト
+	 */
+	public CoreTestModelBuilder2(Instruction instruction) {
+		this(UuidStrategy.FIXED, instruction, Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param instruction 設定オブジェクト
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder2(Instruction instruction, Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, instruction, jiemamy);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder2(Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, new Instruction(), jiemamy);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 */
+	public CoreTestModelBuilder2(UuidStrategy uuid) {
+		this(uuid, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param instruction 設定オブジェクト
+	 */
+	public CoreTestModelBuilder2(UuidStrategy uuid, Instruction instruction) {
+		this(uuid, instruction, Jiemamy.newInstance());
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param instruction 設定オブジェクト
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder2(UuidStrategy uuid, Instruction instruction, Jiemamy jiemamy) {
+		this.uuid = uuid;
+		this.instruction = instruction;
+		this.jiemamy = jiemamy;
+		factory = jiemamy.getFactory();
+		
+		if (factory.hasRootModel() && uuid == UuidStrategy.FIXED) {
+			throw new IllegalArgumentException();
+		}
+		rootModel = jiemamy.getFactory().getRootModel(uuid.get("6cbba964-6809-4eb9-936d-ec318012322c"));
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param uuid UUID生成ストラテジ
+	 * @param jiemamy コンテキスト
+	 */
+	public CoreTestModelBuilder2(UuidStrategy uuid, Jiemamy jiemamy) {
+		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
+	}
+	
+	public Jiemamy build() {
+		rootModel.setDialectClassName(DIALECT_CLASS_NAME);
+		rootModel.setBeginScript("BEGIN;");
+		rootModel.setEndScript("COMMIT;");
+		rootModel.setDescription("Jiemamyテストモデル2");
+		rootModel.setSchemaName("BAR");
+		
+		createDomains();
+		createEntities();
+		createForeignKeys();
+		createDataSets();
+		
+		return jiemamy;
+	}
+	
+	/**
+	 * ビルドしたモデルを持つJiemamyオブジェクトを取得する。
+	 * 
+	 * @return Jiemamyオブジェクト
+	 */
+	public Jiemamy getJiemamy() {
+		return jiemamy;
+	}
+	
+	/**
+	 * データセットを生成する。
+	 */
+	protected void createDataSets() {
+		if (instruction.supressUseDataSet) {
+			return;
+		}
+		// データセットの生成・追加(1)
+		DataSetModel dataSetEn = factory.newModel(DataSetModel.class);
+		dataSetEn.setName("データ群en");
+		DataSetUtil.setRecord(dataSetEn, tableItem, createDataSetEnItem());
+		DataSetUtil.setRecord(dataSetEn, tableUser, createDataSetEnUser());
+		DataSetUtil.setRecord(dataSetEn, tableOrder, createDataSetEnOrder());
+		DataSetUtil.setRecord(dataSetEn, tableDetail, createDataSetEnDetail());
+		rootModel.getDataSets().add(dataSetEn);
+		
+		// データセットの生成・追加(2)
+		DataSetModel dataSetJa = factory.newModel(DataSetModel.class);
+		dataSetJa.setName("データ群ja");
+		DataSetUtil.setRecord(dataSetJa, tableItem, createDataSetJaItem());
+		DataSetUtil.setRecord(dataSetJa, tableUser, createDataSetJaUser());
+		DataSetUtil.setRecord(dataSetJa, tableOrder, createDataSetJaOrder());
+		DataSetUtil.setRecord(dataSetJa, tableDetail, createDataSetJaDetail());
+		rootModel.getDataSets().add(dataSetJa);
+	}
+	
+	/**
+	 * ドメインを生成する。
+	 */
+	protected void createDomains() {
+		if (instruction.supressUseDomain) {
+			return;
+		}
+		
+		idDomain = factory.newModel(DomainModel.class, uuid.get("9a3ba23c-b328-4c70-a32d-3e4be3ee3f08"));
+		idDomain.setName("ID");
+		idDomain.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		idDomain.setNotNullConstraint(factory.newModel(NotNullConstraint.class));
+		idDomain.getAdapter(SerialDataTypeAdapter.class).setSerial(true);
+		rootModel.getDomains().add(idDomain);
+		
+		nameDomain = factory.newModel(DomainModel.class, uuid.get("e2ebf8a7-90d8-48d4-9b5d-8d2e2601b193"));
+		nameDomain.setName("NAME");
+		nameDomain.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
+		nameDomain.setDescription("人名用の型です。");
+		rootModel.getDomains().add(nameDomain);
+	}
+	
+	/**
+	 * エンティティを生成する。
+	 */
+	protected void createEntities() {
+		createTableItem();
+		rootModel.getEntities().add(tableItem);
+		createTableUser();
+		rootModel.getEntities().add(tableUser);
+		createTableOrder();
+		rootModel.getEntities().add(tableOrder);
+		createTableDetail();
+		rootModel.getEntities().add(tableDetail);
+	}
+	
+	/**
+	 * 外部キーを生成する。
+	 */
+	protected void createForeignKeys() {
+		if (instruction.supressUseForeignKey) {
+			return;
+		}
+		
+		fkDetailItem = factory.newModel(ForeignKey.class, uuid.get("df781ad0-112a-4db7-a76c-4395b15600b2"));
+		KeyConstraintUtil.addKeyColumn(fkDetailItem, detailItemId);
+		ForeignKeyUtil.addReferenceColumn(fkDetailItem, itemId);
+		fkDetailItem.setOnDelete(ReferentialAction.RESTRICT);
+		tableDetail.getAttributes().add(fkDetailItem);
+		
+		fkDetailOrder = factory.newModel(ForeignKey.class, uuid.get("fca97c96-db8c-44b4-8427-6207601eaa94"));
+		KeyConstraintUtil.addKeyColumn(fkDetailOrder, detailOrderId);
+		ForeignKeyUtil.addReferenceColumn(fkDetailOrder, orderId);
+		fkDetailOrder.setOnDelete(ReferentialAction.CASCADE);
+		Deferrability deferrability =
+				factory.newModel(Deferrability.class, uuid.get("1726a29c-0984-4042-b2c3-c601671892a1"));
+		deferrability.setInitiallyCheckTime(InitiallyCheckTime.DEFERRED);
+		fkDetailOrder.setDeferrability(deferrability);
+		tableDetail.getAttributes().add(fkDetailOrder);
+		
+		fkOrderUser = factory.newModel(ForeignKey.class, uuid.get("325b5aa9-821e-4791-aac5-2d3eb64f9392"));
+		KeyConstraintUtil.addKeyColumn(fkOrderUser, orderUserId);
+		ForeignKeyUtil.addReferenceColumn(fkOrderUser, userId);
+		fkOrderUser.setOnDelete(ReferentialAction.RESTRICT);
+		Deferrability deferrability2 =
+				factory.newModel(Deferrability.class, uuid.get("899f5889-ac30-44dc-b078-35a1b1edc8f0"));
+		deferrability2.setInitiallyCheckTime(InitiallyCheckTime.IMMEDIATE);
+		fkOrderUser.setDeferrability(deferrability2);
+		tableOrder.getAttributes().add(fkOrderUser);
+	}
+	
+	private List<RecordModel> createDataSetEnDetail() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("546244f5-afa2-4e7e-bde0-5a811ced77af"));
+		RecordUtil.addValue(record, detailId, ID_1);
+		RecordUtil.addValue(record, detailOrderId, ID_1);
+		RecordUtil.addValue(record, detailItemId, ID_1);
+		RecordUtil.addValue(record, detailQuantity, "1");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("943fda94-a3f2-4c47-b19f-9e8655b47362"));
+		RecordUtil.addValue(record, detailId, ID_2);
+		RecordUtil.addValue(record, detailOrderId, ID_1);
+		RecordUtil.addValue(record, detailItemId, ID_4);
+		RecordUtil.addValue(record, detailQuantity, "3");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("d11db81a-2d53-42b4-9f10-17f98f1f7081"));
+		RecordUtil.addValue(record, detailId, ID_3);
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_2);
+		RecordUtil.addValue(record, detailQuantity, "2");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("0aa0dd6f-5656-4994-abfe-05f05aec7275"));
+		RecordUtil.addValue(record, detailId, ID_4);
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_3);
+		RecordUtil.addValue(record, detailQuantity, "6");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("4b9be90a-886f-47d8-89f0-da03d7ad419e"));
+		RecordUtil.addValue(record, detailId, "5");
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_4);
+		RecordUtil.addValue(record, detailQuantity, "12");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("23665133-7f4e-4f65-af7c-0de1b655f7c9"));
+		RecordUtil.addValue(record, detailId, "5");
+		RecordUtil.addValue(record, detailOrderId, ID_3);
+		RecordUtil.addValue(record, detailItemId, ID_2);
+		RecordUtil.addValue(record, detailQuantity, "1");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetEnItem() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("7162b83a-1815-4b08-8c11-8e6400c05a9e"));
+		RecordUtil.addValue(record, itemId, ID_1);
+		RecordUtil.addValue(record, itemName, "DIAMOND");
+		RecordUtil.addValue(record, itemPrice, "100000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("a3d6480d-9088-49d8-a500-872262a635d5"));
+		RecordUtil.addValue(record, itemId, ID_2);
+		RecordUtil.addValue(record, itemName, "EMERALD");
+		RecordUtil.addValue(record, itemPrice, "75000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("bf4556ff-fb81-472c-945d-14067945e7c2"));
+		RecordUtil.addValue(record, itemId, ID_3);
+		RecordUtil.addValue(record, itemName, "RUBY");
+		RecordUtil.addValue(record, itemPrice, "30000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("fc30dd3e-495d-4f7c-9237-dd9f84c14eb5"));
+		RecordUtil.addValue(record, itemId, ID_4);
+		RecordUtil.addValue(record, itemName, "SAPPHIRE");
+		RecordUtil.addValue(record, itemPrice, "10000");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetEnOrder() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("bf813157-8690-4eb3-9168-cd4906f13f27"));
+		RecordUtil.addValue(record, orderId, ID_1);
+		RecordUtil.addValue(record, orderUserId, ID_2);
+		RecordUtil.addValue(record, orderDate, "2009-01-23 00:11:22");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("645b241d-a6ba-4821-8682-448f59949b3e"));
+		RecordUtil.addValue(record, orderId, ID_2);
+		RecordUtil.addValue(record, orderUserId, ID_3);
+		RecordUtil.addValue(record, orderDate, "2009-01-23 00:22:33");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("654ceb1b-b6eb-406d-8eac-aa07c7c41e62"));
+		RecordUtil.addValue(record, orderId, ID_2);
+		RecordUtil.addValue(record, orderUserId, ID_2);
+		RecordUtil.addValue(record, orderDate, "2009-01-24 00:33:44");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetEnUser() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("c60fb4ba-e3d6-415e-a22c-20fbaf4e04e6"));
+		RecordUtil.addValue(record, userId, ID_1);
+		RecordUtil.addValue(record, userName, "SMITH");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("83d5c923-7c61-4393-8185-ac95042f6476"));
+		RecordUtil.addValue(record, userId, ID_2);
+		RecordUtil.addValue(record, userName, "ALLEN");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("2ddd8857-3fca-4020-bb23-49d0126af6fc"));
+		RecordUtil.addValue(record, userId, ID_3);
+		RecordUtil.addValue(record, userName, "WARD");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("2b9aeb38-97de-439e-b96b-40a1c82d249e"));
+		RecordUtil.addValue(record, userId, ID_4);
+		RecordUtil.addValue(record, userName, "JONES");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("a6242c24a-b415-4a93-867b-16a68c2fe884"));
+		RecordUtil.addValue(record, userId, "5");
+		RecordUtil.addValue(record, userName, "MARTIN");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("3b9d3161-a613-4090-a095-708433b23491"));
+		RecordUtil.addValue(record, userId, "6");
+		RecordUtil.addValue(record, userName, "BLAKE");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("aeaad211-b62e-4a35-b410-d107753469e9"));
+		RecordUtil.addValue(record, userId, "7");
+		RecordUtil.addValue(record, userName, "CLARK");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("8c7c220d-ff7f-48c4-9ce7-1395ed1816fa"));
+		RecordUtil.addValue(record, userId, "8");
+		RecordUtil.addValue(record, userName, "SCOTT");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaDetail() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("5a6604ce-6ed2-4542-b009-2a3264b0946a"));
+		RecordUtil.addValue(record, detailId, ID_1);
+		RecordUtil.addValue(record, detailOrderId, ID_1);
+		RecordUtil.addValue(record, detailItemId, ID_1);
+		RecordUtil.addValue(record, detailQuantity, "1");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("db883c9c-b7d3-44f4-88ba-d9753eeae58a"));
+		RecordUtil.addValue(record, detailId, ID_2);
+		RecordUtil.addValue(record, detailOrderId, ID_1);
+		RecordUtil.addValue(record, detailItemId, ID_4);
+		RecordUtil.addValue(record, detailQuantity, "3");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("04e92727-483c-42ad-b671-c1e4661c1844"));
+		RecordUtil.addValue(record, detailId, ID_3);
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_2);
+		RecordUtil.addValue(record, detailQuantity, "2");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("f5147476-8bc6-4656-9d0c-fd883a24a18c"));
+		RecordUtil.addValue(record, detailId, ID_4);
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_3);
+		RecordUtil.addValue(record, detailQuantity, "6");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("d849f188-9940-4ecc-98a8-868dac5b3b4e"));
+		RecordUtil.addValue(record, detailId, "5");
+		RecordUtil.addValue(record, detailOrderId, ID_2);
+		RecordUtil.addValue(record, detailItemId, ID_4);
+		RecordUtil.addValue(record, detailQuantity, "12");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("2abef8cc-bfb7-4565-ba4e-afca3bf98811"));
+		RecordUtil.addValue(record, detailId, "5");
+		RecordUtil.addValue(record, detailOrderId, ID_3);
+		RecordUtil.addValue(record, detailItemId, ID_2);
+		RecordUtil.addValue(record, detailQuantity, "1");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaItem() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("5fd803d4-5a05-496b-813e-6399955a79bb"));
+		RecordUtil.addValue(record, itemId, ID_1);
+		RecordUtil.addValue(record, itemName, "ダイヤモンド");
+		RecordUtil.addValue(record, itemPrice, "100000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("d59e426b-e5ed-433e-8d5a-e748dc75af60"));
+		RecordUtil.addValue(record, itemId, ID_2);
+		RecordUtil.addValue(record, itemName, "エメラルド");
+		RecordUtil.addValue(record, itemPrice, "75000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("59e0a554-162a-4c48-b13d-1dda7fc936e0"));
+		RecordUtil.addValue(record, itemId, ID_3);
+		RecordUtil.addValue(record, itemName, "ルビー");
+		RecordUtil.addValue(record, itemPrice, "30000");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("1c86858f-1e8b-4fc5-807f-f0548e1811e4"));
+		RecordUtil.addValue(record, itemId, ID_4);
+		RecordUtil.addValue(record, itemName, "サファイヤ");
+		RecordUtil.addValue(record, itemPrice, "10000");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaOrder() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("2bdf3969-c2e5-4e3e-a939-2907ca3a5b6a"));
+		RecordUtil.addValue(record, orderId, ID_1);
+		RecordUtil.addValue(record, orderUserId, ID_2);
+		RecordUtil.addValue(record, orderDate, "2009-01-23 00:11:22");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("cca67c6f-a3b2-4b43-a466-be72ccd66e8f"));
+		RecordUtil.addValue(record, orderId, ID_2);
+		RecordUtil.addValue(record, orderUserId, ID_3);
+		RecordUtil.addValue(record, orderDate, "2009-01-23 00:22:33");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("1f74ab8a-3191-464b-89c3-f4f3dddb8ce8"));
+		RecordUtil.addValue(record, orderId, ID_2);
+		RecordUtil.addValue(record, orderUserId, ID_2);
+		RecordUtil.addValue(record, orderDate, "2009-01-24 00:33:44");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private List<RecordModel> createDataSetJaUser() {
+		List<RecordModel> result = new ArrayList<RecordModel>();
+		
+		RecordModel record = factory.newModel(RecordModel.class, uuid.get("25288a67-b4c7-4296-8113-835afeb15c9d"));
+		RecordUtil.addValue(record, userId, ID_1);
+		RecordUtil.addValue(record, userName, "鈴木 茂");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("20a62610-ad04-479f-85c6-a1340e26adb5"));
+		RecordUtil.addValue(record, userId, ID_2);
+		RecordUtil.addValue(record, userName, "内海 透");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("d8fa5455-9791-46fc-9695-da7a5167f7ea"));
+		RecordUtil.addValue(record, userId, ID_3);
+		RecordUtil.addValue(record, userName, "村瀬 武彦");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("3cc66837-d604-4af8-af01-343924e9f058"));
+		RecordUtil.addValue(record, userId, ID_4);
+		RecordUtil.addValue(record, userName, "近藤 美樹");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("2f09b9fe-78fd-4f8a-abf2-f077040f45f2"));
+		RecordUtil.addValue(record, userId, "5");
+		RecordUtil.addValue(record, userName, "榊 美子");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("e3431be3-462c-4419-a2a0-e821597490cc"));
+		RecordUtil.addValue(record, userId, "6");
+		RecordUtil.addValue(record, userName, "三浦 佑");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("c50a3e24-dd00-4969-aae9-69cf9be7f035"));
+		RecordUtil.addValue(record, userId, "7");
+		RecordUtil.addValue(record, userName, "前島 孝幸");
+		result.add(record);
+		
+		record = factory.newModel(RecordModel.class, uuid.get("890bf55f-8bfd-420c-a9df-801da73bc46d"));
+		RecordUtil.addValue(record, userId, "8");
+		RecordUtil.addValue(record, userName, "島崎 由比");
+		result.add(record);
+		
+		return result;
+	}
+	
+	private void createTableDetail() {
+		tableDetail = factory.newModel(TableModel.class, uuid.get("5705ed1a-f329-4f21-9956-94caf4863fba"));
+		tableDetail.setName("T_DETAIL");
+		tableDetail.setLogicalName("明細");
+		tableDetail.setDescription("明細テーブルです。");
+		
+		detailId = factory.newModel(ColumnModel.class, uuid.get("d3571020-4e1b-4158-958d-b5460fa6c32c"));
+		detailId.setName("ID");
+		if (instruction.supressUseDomain) {
+			detailId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(detailId, idDomain);
+		}
+		detailId.setLogicalName("ユーザID");
+		tableDetail.getAttributes().add(detailId);
+		
+		detailOrderId = factory.newModel(ColumnModel.class, uuid.get("a28c64c6-b379-41a4-9563-b774f5bce165"));
+		detailOrderId.setName("ORDER_ID");
+		detailOrderId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		tableDetail.getAttributes().add(detailOrderId);
+		
+		detailItemId = factory.newModel(ColumnModel.class, uuid.get("b4d50786-3b3e-4557-baa3-b739159f0530"));
+		detailItemId.setName("ITEM_ID");
+		detailItemId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		tableDetail.getAttributes().add(detailItemId);
+		
+		detailQuantity = factory.newModel(ColumnModel.class, uuid.get("77bb21f4-e793-4198-a695-42363dac2216"));
+		detailQuantity.setName("QUANTITY");
+		detailQuantity.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		tableDetail.getAttributes().add(detailQuantity);
+		
+		detailPk = factory.newModel(PrimaryKey.class, uuid.get("90243681-19af-4bc0-9e6f-f814fbc58f85"));
+		detailPk.getKeyColumns().add(factory.newReference(detailId));
+		tableDetail.getAttributes().add(detailPk);
+		
+		for (ColumnModel columnModel : Arrays.asList(detailOrderId, detailItemId, detailQuantity)) {
+			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
+			columnModel.setNotNullConstraint(notNull);
+		}
+	}
+	
+	private void createTableItem() {
+		tableItem = factory.newModel(TableModel.class, uuid.get("7ecf5ba1-e80c-472c-b19b-bef2649d7974"));
+		tableItem.setName("T_ITEM");
+		tableItem.setBeginScript("/* test begin script of T_ITEM */");
+		tableItem.setEndScript("/* test end script of T_ITEM */");
+		tableItem.setDescription("商品マスタです。");
+		
+		itemId = factory.newModel(ColumnModel.class, uuid.get("5a9585be-4b0d-4675-99aa-97b0417c816c"));
+		itemId.setName("ID");
+		if (instruction.supressUseDomain) {
+			itemId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(itemId, idDomain);
+		}
+		itemId.setLogicalName("商品ID");
+		tableItem.getAttributes().add(itemId);
+		
+		itemName = factory.newModel(ColumnModel.class, uuid.get("5c9b38e1-2cc9-45f9-ad3f-20b02471cc40"));
+		itemName.setName("NAME");
+		itemName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
+		itemName.setLogicalName("商品名");
+		itemName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
+		tableItem.getAttributes().add(itemName);
+		
+		itemPrice = factory.newModel(ColumnModel.class, uuid.get("7a0cabe3-d382-4e5d-845b-dadd1b637a5f"));
+		itemPrice.setName("PRICE");
+		itemPrice.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
+		itemPrice.setLogicalName("価格");
+		tableItem.getAttributes().add(itemPrice);
+		
+		itemPk = factory.newModel(PrimaryKey.class, uuid.get("32b2b2f3-e668-404b-9478-56f1e680f915"));
+		itemPk.getKeyColumns().add(factory.newReference(itemId));
+		tableItem.getAttributes().add(itemPk);
+		
+		for (ColumnModel columnModel : Arrays.asList(itemName, itemPrice)) {
+			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
+			columnModel.setNotNullConstraint(notNull);
+		}
+	}
+	
+	private void createTableOrder() {
+		tableOrder = factory.newModel(TableModel.class, uuid.get("cefee0d9-d23f-441b-986a-66660354ec74"));
+		tableOrder.setName("T_ORDER");
+		tableOrder.setLogicalName("注文");
+		tableOrder.setDescription("注文テーブルです。");
+		
+		orderId = factory.newModel(ColumnModel.class, uuid.get("b647212a-4d8f-4d18-88e4-5397e54ebe67"));
+		orderId.setName("ID");
+		if (instruction.supressUseDomain) {
+			orderId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(orderId, idDomain);
+		}
+		orderId.setLogicalName("注文ID");
+		tableOrder.getAttributes().add(orderId);
+		
+		orderUserId = factory.newModel(ColumnModel.class, uuid.get("db7a2f62-9658-406a-9dc1-8b90ae2da47c"));
+		orderUserId.setName("USER_ID");
+		orderUserId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		orderUserId.setLogicalName("オーダーユーザID");
+		tableOrder.getAttributes().add(orderUserId);
+		
+		orderDate = factory.newModel(ColumnModel.class, uuid.get("4ce761b0-137b-4105-ad2a-2efcba5e6bc4"));
+		orderDate.setName("ORDER_DATE");
+		orderDate.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.TIMESTAMP).build());
+		tableOrder.getAttributes().add(orderDate);
+		
+		orderPk = factory.newModel(PrimaryKey.class, uuid.get("b204ff42-537b-4e14-bf61-e9baf1b119dc"));
+		orderPk.getKeyColumns().add(factory.newReference(orderId));
+		tableOrder.getAttributes().add(orderPk);
+		
+		for (ColumnModel columnModel : Arrays.asList(orderUserId, orderDate)) {
+			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
+			columnModel.setNotNullConstraint(notNull);
+		}
+	}
+	
+	private void createTableUser() {
+		tableUser = factory.newModel(TableModel.class, uuid.get("0802ef7b-b2da-4fc4-8104-0c99a1e472d5"));
+		tableUser.setName("T_USER");
+		tableUser.setLogicalName("ユーザ");
+		tableUser.setDescription("ユーザマスタです。");
+		
+		userId = factory.newModel(ColumnModel.class, uuid.get("6b022a79-45a6-4be4-9d3d-cfb27042a08e"));
+		userId.setName("ID");
+		if (instruction.supressUseDomain) {
+			userId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
+		} else {
+			ColumnUtil.setDataType(userId, idDomain);
+		}
+		userId.setLogicalName("ユーザID");
+		tableUser.getAttributes().add(userId);
+		
+		userName = factory.newModel(ColumnModel.class, uuid.get("dacc68d2-fe32-4f4b-8082-9d55232ba7da"));
+		userName.setName("NAME");
+		if (instruction.supressUseDomain) {
+			userName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
+		} else {
+			ColumnUtil.setDataType(userName, nameDomain);
+		}
+		userName.setLogicalName("ユーザ名");
+		userName.setDefaultValue("no name");
+		userName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
+		tableUser.getAttributes().add(userName);
+		
+		userPk = factory.newModel(PrimaryKey.class, uuid.get("dac295e3-c390-46ee-9a5b-e89636ab9d7e"));
+		userPk.getKeyColumns().add(factory.newReference(userId));
+		tableUser.getAttributes().add(userPk);
+		
+		NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
+		userName.setNotNullConstraint(notNull);
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/CoreTestModelBuilder2.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/Instruction.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/Instruction.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/Instruction.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -19,7 +19,7 @@
 package org.jiemamy.internal.test;
 
 /**
- * {@link TestModelBuilder}等に対する指示クラス。
+ * {@link CoreTestModelBuilder}等に対する指示クラス。
  * 
  * @author daisuke
  */

Deleted: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -1,769 +0,0 @@
-/*
- * Copyright 2007-2009 Jiemamy Project and the Others.
- * Created on 2009/01/22
- *
- * 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.internal.test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.jiemamy.Artemis;
-import org.jiemamy.InstanceProvider;
-import org.jiemamy.Jiemamy;
-import org.jiemamy.JiemamyFactory;
-import org.jiemamy.dialect.Dialect;
-import org.jiemamy.internal.model.attribute.RepresentationAdapter;
-import org.jiemamy.internal.model.datatype.adapter.SerialDataTypeAdapter;
-import org.jiemamy.model.RootModel;
-import org.jiemamy.model.attribute.ColumnModel;
-import org.jiemamy.model.attribute.constraint.ColumnCheckConstraint;
-import org.jiemamy.model.attribute.constraint.Deferrability;
-import org.jiemamy.model.attribute.constraint.ForeignKey;
-import org.jiemamy.model.attribute.constraint.NotNullConstraint;
-import org.jiemamy.model.attribute.constraint.PrimaryKey;
-import org.jiemamy.model.attribute.constraint.Deferrability.InitiallyCheckTime;
-import org.jiemamy.model.attribute.constraint.ForeignKey.ReferentialAction;
-import org.jiemamy.model.dataset.DataSetModel;
-import org.jiemamy.model.dataset.RecordModel;
-import org.jiemamy.model.datatype.DataTypeCategory;
-import org.jiemamy.model.datatype.DomainModel;
-import org.jiemamy.model.entity.TableModel;
-import org.jiemamy.model.entity.ViewModel;
-import org.jiemamy.model.index.IndexColumnModel;
-import org.jiemamy.model.index.IndexModel;
-import org.jiemamy.model.index.IndexColumnModel.SortOrder;
-import org.jiemamy.utils.CollectionsUtil;
-import org.jiemamy.utils.Disablable;
-import org.jiemamy.utils.builder.DataTypeBuilderImpl;
-import org.jiemamy.utils.model.ColumnUtil;
-import org.jiemamy.utils.model.DataSetUtil;
-import org.jiemamy.utils.model.ForeignKeyUtil;
-import org.jiemamy.utils.model.KeyConstraintUtil;
-import org.jiemamy.utils.model.RecordUtil;
-
-/**
- * Jiemamyテストモデル1(EMP-DEPTテーブル)を組み立てるビルダ。
- * 
- * @author daisuke
- */
-public class TestModelBuilder {
-	
-	private static final String ID_1 = "1";
-	
-	private static final String ID_2 = "2";
-	
-	private static final String ID_3 = "3";
-	
-	private static final String ID_4 = "4";
-	
-	private static final String DIALECT_CLASS_NAME = "org.jiemamy.dialect.mysql.MySqlDialect";
-	
-	// ---- basics
-	
-	/** UUID生成戦略 */
-	public final UuidStrategy uuid;
-	
-	/** 生成方針 */
-	public final Instruction instruction;
-	
-	/** 生成するモデルのインスタンス空間 */
-	public final Jiemamy jiemamy;
-	
-	/** 生成に使用するファクトリ */
-	public final JiemamyFactory factory;
-	
-	/** 生成したモデル */
-	public final RootModel rootModel;
-	
-	// ---- models
-	
-	/** 生成したモデル */
-	public DomainModel domainId;
-	
-	/** 生成したモデル */
-	public DomainModel domainName;
-	
-	// dept
-	
-	/** 生成したモデル */
-	public TableModel tableDept;
-	
-	/** 生成したモデル */
-	public ColumnModel deptId;
-	
-	/** 生成したモデル */
-	public ColumnModel deptDeptNo;
-	
-	/** 生成したモデル */
-	public ColumnModel deptDeptName;
-	
-	/** 生成したモデル */
-	public ColumnModel deptLoc;
-	
-	/** 生成したモデル */
-	public PrimaryKey deptPk;
-	
-	// emp
-	
-	/** 生成したモデル */
-	public TableModel tableEmp;
-	
-	/** 生成したモデル */
-	public ColumnModel empId;
-	
-	/** 生成したモデル */
-	public ColumnModel empEmpNo;
-	
-	/** 生成したモデル */
-	
-	public ColumnModel empEmpName;
-	
-	/** 生成したモデル */
-	public ColumnModel empMgrId;
-	
-	/** 生成したモデル */
-	public ColumnModel empHiredate;
-	
-	/** 生成したモデル */
-	public ColumnModel empSal;
-	
-	/** 生成したモデル */
-	public ColumnModel empDeptId;
-	
-	/** 生成したモデル */
-	public PrimaryKey empPk;
-	
-	// highSal
-	
-	/** 生成したモデル */
-	public ViewModel viewHighSal;
-	
-	// fk
-	
-	/** 生成したモデル */
-	public ForeignKey fkEmpEmp;
-	
-	/** 生成したモデル */
-	public ForeignKey fkEmpDept;
-	
-	private IndexModel empNameIndex;
-	
-
-	/**
-	 * インスタンスを生成する。
-	 */
-	public TestModelBuilder() {
-		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param dialectProvider SQL方言プロバイダ
-	 */
-	public TestModelBuilder(InstanceProvider<Dialect> dialectProvider) {
-		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance(new Artemis(), dialectProvider));
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param instruction 設定オブジェクト
-	 */
-	public TestModelBuilder(Instruction instruction) {
-		this(UuidStrategy.FIXED, instruction, Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param instruction 設定オブジェクト
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder(Instruction instruction, Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, instruction, jiemamy);
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder(Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, new Instruction(), jiemamy);
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 */
-	public TestModelBuilder(UuidStrategy uuid) {
-		this(uuid, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param instruction 設定オブジェクト
-	 */
-	public TestModelBuilder(UuidStrategy uuid, Instruction instruction) {
-		this(uuid, instruction, Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param instruction 設定オブジェクト
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder(UuidStrategy uuid, Instruction instruction, Jiemamy jiemamy) {
-		this.uuid = uuid;
-		this.instruction = instruction;
-		this.jiemamy = jiemamy;
-		factory = jiemamy.getFactory();
-		
-		if (factory.hasRootModel() && uuid == UuidStrategy.FIXED) {
-			throw new IllegalArgumentException();
-		}
-		rootModel = jiemamy.getFactory().getRootModel(uuid.get("d5a96af3-b1e9-4285-a8ef-c491ce5ae308"));
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder(UuidStrategy uuid, Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * モデルをビルドする。
-	 */
-	public void build() {
-		rootModel.setDialectClassName(DIALECT_CLASS_NAME);
-		rootModel.setBeginScript("BEGIN;");
-		rootModel.setEndScript("COMMIT;");
-		rootModel.setDescription("Jiemamyテストモデル1");
-		rootModel.setSchemaName("FOO");
-		
-		createDomains();
-		createEntities();
-		createForeignKeys();
-		createDataSets();
-	}
-	
-	/**
-	 * ビルドしたモデルを持つJiemamyオブジェクトを取得する。
-	 * 
-	 * @return Jiemamyオブジェクト
-	 */
-	public Jiemamy getJiemamy() {
-		return jiemamy;
-	}
-	
-	/**
-	 * データセットを生成する。
-	 */
-	protected void createDataSets() {
-		if (instruction.supressUseDataSet) {
-			return;
-		}
-		// データセットの生成・追加(1)
-		DataSetModel dataSetEn = factory.newModel(DataSetModel.class, uuid.get("b73100b5-2d70-4b48-a825-311eacb63b2f"));
-		dataSetEn.setName("データ群en");
-		DataSetUtil.setRecord(dataSetEn, tableDept, createDataSetEnDept());
-		DataSetUtil.setRecord(dataSetEn, tableEmp, createDataSetEnEmp());
-		rootModel.getDataSets().add(dataSetEn);
-		
-		// データセットの生成・追加(2)
-		DataSetModel dataSetJa = factory.newModel(DataSetModel.class, uuid.get("91246ed4-1ef3-440e-bf12-40fa4439a71b"));
-		dataSetJa.setName("データ群ja");
-		DataSetUtil.setRecord(dataSetJa, tableDept, createDataSetJaDept());
-		DataSetUtil.setRecord(dataSetJa, tableEmp, createDataSetJaEmp());
-		rootModel.getDataSets().add(dataSetJa);
-	}
-	
-	/**
-	 * ドメインを生成する。
-	 */
-	protected void createDomains() {
-		if (instruction.supressUseDomain) {
-			return;
-		}
-		
-		domainId = factory.newModel(DomainModel.class, uuid.get("2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"));
-		domainId.setName("ID");
-		domainId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		NotNullConstraint notNull =
-				factory.newModel(NotNullConstraint.class, uuid.get("af4845dc-7f3a-434d-b5ac-2f25b74d7e76"));
-		domainId.setNotNullConstraint(notNull);
-		ColumnCheckConstraint check =
-				factory.newModel(ColumnCheckConstraint.class, uuid.get("48b76d76-b288-480a-afa4-111247379f8d"));
-		check.setName("hoge");
-		check.setExpression("VALUE > 0");
-		domainId.setCheckConstraint(check);
-		domainId.getDataType().getAdapter(SerialDataTypeAdapter.class).setSerial(true);
-		rootModel.getDomains().add(domainId);
-		
-		domainName = factory.newModel(DomainModel.class, uuid.get("62f1e6ec-e6aa-4d52-a6c3-27dac086f2d7"));
-		domainName.setName("NAME");
-		domainName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
-		domainName.setDescription("人名用の型です。");
-		rootModel.getDomains().add(domainName);
-	}
-	
-	/**
-	 * エンティティを生成する。
-	 */
-	protected void createEntities() {
-		createTableDept();
-		rootModel.getEntities().add(tableDept);
-		createTableEmp();
-		rootModel.getEntities().add(tableEmp);
-		createViewHighSal();
-		rootModel.getEntities().add(viewHighSal);
-	}
-	
-	/**
-	 * 外部キーを生成する。
-	 */
-	protected void createForeignKeys() {
-		if (instruction.supressUseForeignKey) {
-			return;
-		}
-		
-		int pkIndex = tableEmp.getAttributes().indexOf(empPk);
-		
-		fkEmpEmp = factory.newModel(ForeignKey.class, uuid.get("e43d3c43-33c8-4b02-aa42-83f2d868cfe6"));
-		fkEmpEmp.setName("emp_mgr_id_fkey");
-		KeyConstraintUtil.addKeyColumn(fkEmpEmp, empMgrId);
-		ForeignKeyUtil.addReferenceColumn(fkEmpEmp, empId);
-		fkEmpEmp.setOnDelete(ReferentialAction.SET_NULL);
-		Deferrability deferrability =
-				factory.newModel(Deferrability.class, uuid.get("9af096ba-8841-41ba-9dd4-02628b800bf0"));
-		deferrability.setDeferrable(true);
-		deferrability.setInitiallyCheckTime(InitiallyCheckTime.DEFERRED);
-		fkEmpEmp.setDeferrability(deferrability);
-		tableEmp.getAttributes().add(pkIndex + 1, fkEmpEmp);
-		
-		fkEmpDept = factory.newModel(ForeignKey.class, uuid.get("e7dd92b4-1d97-4be6-bab6-fa9fe26eb6ed"));
-		fkEmpDept.setName("emp_dept_id_fkey");
-		KeyConstraintUtil.addKeyColumn(fkEmpDept, empDeptId);
-		ForeignKeyUtil.addReferenceColumn(fkEmpDept, deptId);
-		tableEmp.getAttributes().add(pkIndex + 2, fkEmpDept);
-	}
-	
-	private List<RecordModel> createDataSetEnDept() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("176bfb08-99cb-4c76-bf8e-6979e0c7afb9"));
-		RecordUtil.addValue(record, deptId, ID_1);
-		RecordUtil.addValue(record, deptDeptNo, "10");
-		RecordUtil.addValue(record, deptDeptName, "ACCOUNTING");
-		RecordUtil.addValue(record, deptLoc, "NEW YORK");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("3971430b-ef1d-4e5a-b996-f2acfa7536c0"));
-		RecordUtil.addValue(record, deptId, ID_2);
-		RecordUtil.addValue(record, deptDeptNo, "20");
-		RecordUtil.addValue(record, deptDeptName, "RESEARCH");
-		RecordUtil.addValue(record, deptLoc, "DALLAS");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("0591cc1e-45a6-4598-b85a-20fae51b7991"));
-		RecordUtil.addValue(record, deptId, ID_3);
-		RecordUtil.addValue(record, deptDeptNo, "30");
-		RecordUtil.addValue(record, deptDeptName, "SALES");
-		RecordUtil.addValue(record, deptLoc, "CHICAGO");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("ac275955-4710-484a-b694-f7acc6ded08f"));
-		RecordUtil.addValue(record, deptId, ID_4);
-		RecordUtil.addValue(record, deptDeptNo, "40");
-		RecordUtil.addValue(record, deptDeptName, "OPERATIONS");
-		RecordUtil.addValue(record, deptLoc, "BOSTON");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetEnEmp() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("6ce22d69-bd75-4822-946f-a51221fd45eb"));
-		RecordUtil.addValue(record, empId, ID_1);
-		RecordUtil.addValue(record, empEmpNo, "10");
-		RecordUtil.addValue(record, empEmpName, "SMITH");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2003-02-01");
-		RecordUtil.addValue(record, empSal, "40");
-		RecordUtil.addValue(record, empDeptId, ID_3);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("03962eb2-90ab-4cff-8fac-14e52e117361"));
-		RecordUtil.addValue(record, empId, ID_2);
-		RecordUtil.addValue(record, empEmpNo, "20");
-		RecordUtil.addValue(record, empEmpName, "ALLEN");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2000-03-04");
-		RecordUtil.addValue(record, empSal, "50");
-		RecordUtil.addValue(record, empDeptId, ID_4);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("f5f16c1e-4a41-4ccd-9c87-00c09c0e7609"));
-		RecordUtil.addValue(record, empId, ID_3);
-		RecordUtil.addValue(record, empEmpNo, "30");
-		RecordUtil.addValue(record, empEmpName, "WARD");
-//		RecordUtil.addValue(record, empMgrId, null);
-		RecordUtil.addValue(record, empHiredate, "1993-12-05");
-		RecordUtil.addValue(record, empSal, "60");
-		RecordUtil.addValue(record, empDeptId, ID_4);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("03a9e57f-3010-4d46-8024-1915c262749e"));
-		RecordUtil.addValue(record, empId, ID_4);
-		RecordUtil.addValue(record, empEmpNo, "40");
-		RecordUtil.addValue(record, empEmpName, "JONES");
-		RecordUtil.addValue(record, empMgrId, ID_2);
-		RecordUtil.addValue(record, empHiredate, "2007-04-01");
-		RecordUtil.addValue(record, empSal, "36");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("4206acce-b31f-4c2e-8682-4796254a4dca"));
-		RecordUtil.addValue(record, empId, "5");
-		RecordUtil.addValue(record, empEmpNo, "50");
-		RecordUtil.addValue(record, empEmpName, "MARTIN");
-		RecordUtil.addValue(record, empMgrId, ID_1);
-		RecordUtil.addValue(record, empHiredate, "2002-05-30");
-		RecordUtil.addValue(record, empSal, "30");
-		RecordUtil.addValue(record, empDeptId, ID_3);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("6748ce0e-462d-44df-a536-18f14a3c2643"));
-		RecordUtil.addValue(record, empId, "6");
-		RecordUtil.addValue(record, empEmpNo, "60");
-		RecordUtil.addValue(record, empEmpName, "BLAKE");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2007-04-01");
-		RecordUtil.addValue(record, empSal, "25");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("f8564bdf-f61c-4711-b606-69aed74324a6"));
-		RecordUtil.addValue(record, empId, "7");
-		RecordUtil.addValue(record, empEmpNo, "70");
-		RecordUtil.addValue(record, empEmpName, "CLARK");
-		RecordUtil.addValue(record, empMgrId, ID_1);
-		RecordUtil.addValue(record, empHiredate, "2004-09-01");
-		RecordUtil.addValue(record, empSal, "30");
-		RecordUtil.addValue(record, empDeptId, ID_1);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("dd1cc8e1-7562-4539-86d8-5390d043325a"));
-		RecordUtil.addValue(record, empId, "8");
-		RecordUtil.addValue(record, empEmpNo, "80");
-		RecordUtil.addValue(record, empEmpName, "SCOTT");
-		RecordUtil.addValue(record, empMgrId, ID_4);
-		RecordUtil.addValue(record, empHiredate, "2008-03-01");
-		RecordUtil.addValue(record, empSal, "25");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaDept() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("61671217-d61c-4f42-9985-4f6b2c970171"));
-		RecordUtil.addValue(record, deptId, ID_1);
-		RecordUtil.addValue(record, deptDeptNo, "10");
-		RecordUtil.addValue(record, deptDeptName, "経理部");
-		RecordUtil.addValue(record, deptLoc, "広島");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("171d019e-163f-42f6-82dc-15340798fdf4"));
-		RecordUtil.addValue(record, deptId, ID_2);
-		RecordUtil.addValue(record, deptDeptNo, "20");
-		RecordUtil.addValue(record, deptDeptName, "研究開発部");
-		RecordUtil.addValue(record, deptLoc, "京都");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("838344e6-093d-4202-aaca-bacf1a7ff376"));
-		RecordUtil.addValue(record, deptId, ID_3);
-		RecordUtil.addValue(record, deptDeptNo, "30");
-		RecordUtil.addValue(record, deptDeptName, "営業部");
-		RecordUtil.addValue(record, deptLoc, "東京");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("2f29bb19-0a20-4251-8052-568194e6101c"));
-		RecordUtil.addValue(record, deptId, ID_4);
-		RecordUtil.addValue(record, deptDeptNo, "40");
-		RecordUtil.addValue(record, deptDeptName, "経営本部");
-		// locは指定せず、特定しない状態
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaEmp() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("9365e670-1eff-4a23-90bd-f794b9742b10"));
-		RecordUtil.addValue(record, empId, ID_1);
-		RecordUtil.addValue(record, empEmpNo, "10");
-		RecordUtil.addValue(record, empEmpName, "鈴木 茂");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2003-02-01");
-		RecordUtil.addValue(record, empSal, "40");
-		RecordUtil.addValue(record, empDeptId, ID_3);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("90673863-ba77-461b-ab82-fffecd7e873b"));
-		RecordUtil.addValue(record, empId, ID_2);
-		RecordUtil.addValue(record, empEmpNo, "20");
-		RecordUtil.addValue(record, empEmpName, "内海 透");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2000-03-04");
-		RecordUtil.addValue(record, empSal, "50");
-		RecordUtil.addValue(record, empDeptId, ID_4);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("5bf32699-c2ff-4d96-9e26-2a3f3d7c7661"));
-		RecordUtil.addValue(record, empId, ID_3);
-		RecordUtil.addValue(record, empEmpNo, "30");
-		RecordUtil.addValue(record, empEmpName, "村瀬 武彦");
-//		RecordUtil.addValue(record, empMgrId, null);
-		RecordUtil.addValue(record, empHiredate, "1993-12-05");
-		RecordUtil.addValue(record, empSal, "60");
-		RecordUtil.addValue(record, empDeptId, ID_4);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("f164796f-ed85-48a0-98af-2f6045ee3a33"));
-		RecordUtil.addValue(record, empId, ID_4);
-		RecordUtil.addValue(record, empEmpNo, "40");
-		RecordUtil.addValue(record, empEmpName, "近藤 美樹");
-		RecordUtil.addValue(record, empMgrId, ID_2);
-		RecordUtil.addValue(record, empHiredate, "2007-04-01");
-		RecordUtil.addValue(record, empSal, "36");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("c10562ee-4ab9-40a5-8a21-83f331df5c85"));
-		RecordUtil.addValue(record, empId, "5");
-		RecordUtil.addValue(record, empEmpNo, "50");
-		RecordUtil.addValue(record, empEmpName, "榊 美子");
-		RecordUtil.addValue(record, empMgrId, ID_1);
-		RecordUtil.addValue(record, empHiredate, "2002-05-30");
-		RecordUtil.addValue(record, empSal, "30");
-		RecordUtil.addValue(record, empDeptId, ID_3);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("29c9a655-f4ed-4753-aea6-1e21cb28f891"));
-		RecordUtil.addValue(record, empId, "6");
-		RecordUtil.addValue(record, empEmpNo, "60");
-		RecordUtil.addValue(record, empEmpName, "三浦 佑");
-		RecordUtil.addValue(record, empMgrId, ID_3);
-		RecordUtil.addValue(record, empHiredate, "2007-04-01");
-		RecordUtil.addValue(record, empSal, "25");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("b65b9b12-bb68-4845-a514-a57f0bd57616"));
-		RecordUtil.addValue(record, empId, "7");
-		RecordUtil.addValue(record, empEmpNo, "70");
-		RecordUtil.addValue(record, empEmpName, "前島 孝幸");
-		RecordUtil.addValue(record, empMgrId, ID_1);
-		RecordUtil.addValue(record, empHiredate, "2004-09-01");
-		RecordUtil.addValue(record, empSal, "30");
-		RecordUtil.addValue(record, empDeptId, ID_1);
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("0eb27151-323a-4679-bde4-0b01f561139f"));
-		RecordUtil.addValue(record, empId, "8");
-		RecordUtil.addValue(record, empEmpNo, "80");
-		RecordUtil.addValue(record, empEmpName, "島崎 由比");
-		RecordUtil.addValue(record, empMgrId, ID_4);
-		RecordUtil.addValue(record, empHiredate, "2008-03-01");
-		RecordUtil.addValue(record, empSal, "25");
-		RecordUtil.addValue(record, empDeptId, ID_2);
-		result.add(record);
-		
-		return result;
-	}
-	
-	private void createTableDept() {
-		tableDept = factory.newModel(TableModel.class, uuid.get("d7489ed6-0add-443d-95cf-234376eb0455"));
-		tableDept.setName("T_DEPT");
-		tableDept.setBeginScript("/* test begin script */");
-		tableDept.setDescription("部署マスタです。");
-		
-		deptId = factory.newModel(ColumnModel.class, uuid.get("c7ed225d-92a6-4cc2-90de-60531804464e"));
-		deptId.setName("ID");
-		if (instruction.supressUseDomain) {
-			deptId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(deptId, domainId);
-		}
-		deptId.setLogicalName("部署ID");
-		deptPk = factory.newModel(PrimaryKey.class, uuid.get("8de55e65-ec48-467a-bac5-8eee2d71d41c"));
-		deptPk.setName("dept_pkey");
-		deptPk.getKeyColumns().add(factory.newReference(deptId));
-		deptId.setPrimaryKey(deptPk);
-		tableDept.getAttributes().add(deptId);
-		
-		deptDeptNo = factory.newModel(ColumnModel.class, uuid.get("2d951389-6bc7-49d7-8631-1d26fe17047e"));
-		deptDeptNo.setName("DEPT_NO");
-		deptDeptNo.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		deptDeptNo.setLogicalName("部署番号");
-		tableDept.getAttributes().add(deptDeptNo);
-		
-		deptDeptName = factory.newModel(ColumnModel.class, uuid.get("1fcd63d3-974e-4d2e-a0d8-3b9c233104d9"));
-		deptDeptName.setName("DEPT_NAME");
-		deptDeptName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
-		deptDeptName.setLogicalName("部署名");
-		deptDeptName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
-		tableDept.getAttributes().add(deptDeptName);
-		
-		deptLoc = factory.newModel(ColumnModel.class, uuid.get("7bf79e76-07b8-43b6-a993-b8ef374a31f5"));
-		deptLoc.setName("LOC");
-		deptLoc.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
-		deptLoc.setLogicalName("ロケーション");
-		deptLoc.setDefaultValue("secret");
-		tableDept.getAttributes().add(deptLoc);
-		
-		Map<UUID, UUID> columnNotNullMap = CollectionsUtil.newHashMap();
-		columnNotNullMap.put(deptDeptNo.getId(), uuid.get("cc709f63-a886-4207-a316-58ad7f279e10"));
-		columnNotNullMap.put(deptDeptName.getId(), uuid.get("fab2f883-0489-4661-bd57-f04286188eef"));
-		
-		for (ColumnModel columnModel : Arrays.asList(deptDeptNo, deptDeptName)) {
-			NotNullConstraint notNull =
-					factory.newModel(NotNullConstraint.class, columnNotNullMap.get(columnModel.getId()));
-			columnModel.setNotNullConstraint(notNull);
-		}
-	}
-	
-	private void createTableEmp() {
-		tableEmp = factory.newModel(TableModel.class, uuid.get("9f522e56-809c-45fd-8416-39201014218b"));
-		tableEmp.setName("T_EMP");
-		tableEmp.setLogicalName("従業員");
-		tableEmp.setBeginScript("/* test end script */");
-		tableEmp.setDescription("従業員マスタです。");
-		
-		empId = factory.newModel(ColumnModel.class, uuid.get("44c8e93d-b7ad-46cc-9b29-88c3a7d6c33e"));
-		empId.setName("ID");
-		if (instruction.supressUseDomain) {
-			empId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(empId, domainId);
-		}
-		empId.setLogicalName("従業員ID");
-		tableEmp.getAttributes().add(empId);
-		
-		empEmpNo = factory.newModel(ColumnModel.class, uuid.get("248a429b-2159-4ebd-a791-eee42a059374"));
-		empEmpNo.setName("EMP_NO");
-		empEmpNo.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		empEmpNo.setLogicalName("従業員番号");
-		NotNullConstraint notNullEmpEmpNo =
-				factory.newModel(NotNullConstraint.class, uuid.get("05ee4c06-d8b5-4599-a7e9-1cda036ea2c7"));
-		notNullEmpEmpNo.getAdapter(Disablable.class).setDisabled(true);
-		empEmpNo.setNotNullConstraint(notNullEmpEmpNo);
-		tableEmp.getAttributes().add(empEmpNo);
-		
-		empEmpName = factory.newModel(ColumnModel.class, uuid.get("0e51b6df-43ab-408c-90ef-de13c6aab881"));
-		empEmpName.setName("EMP_NAME");
-		if (instruction.supressUseDomain) {
-			empEmpName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
-		} else {
-			ColumnUtil.setDataType(empEmpName, domainName);
-		}
-		empEmpName.setLogicalName("従業員名");
-		empEmpName.setDefaultValue("no name");
-		empEmpName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
-		tableEmp.getAttributes().add(empEmpName);
-		
-		empMgrId = factory.newModel(ColumnModel.class, uuid.get("3d21a85a-72de-41b3-99dd-f4cb94e58d84"));
-		empMgrId.setName("MGR_ID");
-		empMgrId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		empMgrId.setLogicalName("上司ID");
-		tableEmp.getAttributes().add(empMgrId);
-		
-		empHiredate = factory.newModel(ColumnModel.class, uuid.get("f0b57eed-98ab-4c21-9855-218c592814dc"));
-		empHiredate.setName("HIREDATE");
-		empHiredate.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.DATE).build());
-		tableEmp.getAttributes().add(empHiredate);
-		
-		empSal = factory.newModel(ColumnModel.class, uuid.get("80786549-dc2c-4c1c-bcbd-9f6fdec911d2"));
-		empSal.setName("SAL");
-		empSal.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.NUMERIC).setPrecision(7).setScale(2)
-			.build());
-		tableEmp.getAttributes().add(empSal);
-		
-		ColumnCheckConstraint checkConstraint =
-				factory.newModel(ColumnCheckConstraint.class, uuid.get("873f6660-7a61-4c2c-87a0-e922fa03b88c"));
-		checkConstraint.setName("positive_sal");
-		checkConstraint.setExpression("SAL >= 0");
-		empSal.setCheckConstraint(checkConstraint);
-		
-		empDeptId = factory.newModel(ColumnModel.class, uuid.get("4ae69b7a-7a0e-422a-89dc-0f0cff77565b"));
-		empDeptId.setName("DEPT_ID");
-		empDeptId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		tableEmp.getAttributes().add(empDeptId);
-		
-		empPk = factory.newModel(PrimaryKey.class, uuid.get("6145e6a0-9ff7-4033-999d-99d80392a48f"));
-		empPk.setName("emp_pkey");
-		empPk.getKeyColumns().add(factory.newReference(empId));
-		tableEmp.getAttributes().add(empPk);
-		
-		Map<UUID, UUID> columnNotNullMap = CollectionsUtil.newHashMap();
-		columnNotNullMap.put(empEmpName.getId(), uuid.get("41f178b9-2cb5-4dad-a6c0-48df2d5b1300"));
-		columnNotNullMap.put(empHiredate.getId(), uuid.get("2d66fd73-8d6b-41d8-b6b8-daec7d6c0c53"));
-		columnNotNullMap.put(empSal.getId(), uuid.get("a446779a-4fb6-4a0f-8262-22daae856e85"));
-		columnNotNullMap.put(empDeptId.getId(), uuid.get("b9a0fdce-a965-4118-ae71-5dc7150f6d4e"));
-		
-		for (ColumnModel columnModel : Arrays.asList(empEmpName, empHiredate, empSal, empDeptId)) {
-			NotNullConstraint notNull =
-					factory.newModel(NotNullConstraint.class, columnNotNullMap.get(columnModel.getId()));
-			columnModel.setNotNullConstraint(notNull);
-		}
-		
-		empNameIndex = factory.newModel(IndexModel.class, uuid.get("9abc9e01-4cdb-42fe-a495-93b56af35a1d"));
-		empNameIndex.setName("IDX_EMP_NAME");
-		IndexColumnModel indexColumnModel =
-				factory.newModel(IndexColumnModel.class, uuid.get("52d2b6aa-fff7-4c33-af13-f4d0b63e8e58"));
-		indexColumnModel.setColumnRef(factory.newReference(empEmpName));
-		indexColumnModel.setSortOrder(SortOrder.DESC);
-		empNameIndex.getIndexColumns().add(indexColumnModel);
-		tableEmp.getIndexes().add(empNameIndex);
-	}
-	
-	private void createViewHighSal() {
-		viewHighSal = factory.newModel(ViewModel.class, uuid.get("516f7961-cb7b-48e2-990b-7fb0c750c3a4"));
-		viewHighSal.setName("V_HIGH_SAL_EMP");
-		viewHighSal.setDefinition("SELECT * FROM T_EMP WHERE SAL > 2000;");
-		viewHighSal.setLogicalName("高給取り");
-	}
-}

Added: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/04/04
+ *
+ * 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.internal.test;
+
+import org.jiemamy.Jiemamy;
+
+/**
+ * TODO for daisuke
+ * 
+ * @author daisuke
+ */
+public interface TestModelBuilder {
+	
+	/**
+	 * モデルをビルドする。
+	 * 
+	 * @return ビルドしたモデルのJiemamyコンテキスト
+	 */
+	Jiemamy build();
+}

Deleted: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder2.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder2.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/test/TestModelBuilder2.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -1,825 +0,0 @@
-/*
- * Copyright 2007-2009 Jiemamy Project and the Others.
- * Created on 2009/01/22
- *
- * 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.internal.test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.jiemamy.Jiemamy;
-import org.jiemamy.JiemamyFactory;
-import org.jiemamy.internal.model.attribute.RepresentationAdapter;
-import org.jiemamy.internal.model.datatype.adapter.SerialDataTypeAdapter;
-import org.jiemamy.model.RootModel;
-import org.jiemamy.model.attribute.ColumnModel;
-import org.jiemamy.model.attribute.constraint.Deferrability;
-import org.jiemamy.model.attribute.constraint.ForeignKey;
-import org.jiemamy.model.attribute.constraint.NotNullConstraint;
-import org.jiemamy.model.attribute.constraint.PrimaryKey;
-import org.jiemamy.model.attribute.constraint.Deferrability.InitiallyCheckTime;
-import org.jiemamy.model.attribute.constraint.ForeignKey.ReferentialAction;
-import org.jiemamy.model.dataset.DataSetModel;
-import org.jiemamy.model.dataset.RecordModel;
-import org.jiemamy.model.datatype.DataTypeCategory;
-import org.jiemamy.model.datatype.DomainModel;
-import org.jiemamy.model.entity.TableModel;
-import org.jiemamy.utils.builder.DataTypeBuilderImpl;
-import org.jiemamy.utils.model.ColumnUtil;
-import org.jiemamy.utils.model.DataSetUtil;
-import org.jiemamy.utils.model.ForeignKeyUtil;
-import org.jiemamy.utils.model.KeyConstraintUtil;
-import org.jiemamy.utils.model.RecordUtil;
-
-/**
- * Jiemamyテストモデル1(ORDERテーブル)を組み立てるビルダ。
- * 
- * @author daisuke
- */
-public class TestModelBuilder2 {
-	
-	private static final String ID_1 = "1";
-	
-	private static final String ID_2 = "2";
-	
-	private static final String ID_3 = "3";
-	
-	private static final String ID_4 = "4";
-	
-	private static final String DIALECT_CLASS_NAME = "org.jiemamy.dialect.mysql.MySqlDialect";
-	
-	// ---- basics
-	
-	/** UUID生成戦略 */
-	public final UuidStrategy uuid;
-	
-	/** 生成方針 */
-	public final Instruction instruction;
-	
-	/** 生成するモデルのインスタンス空間 */
-	public final Jiemamy jiemamy;
-	
-	/** 生成に使用するファクトリ */
-	public final JiemamyFactory factory;
-	
-	/** 生成したモデル */
-	public final RootModel rootModel;
-	
-	// ---- models
-	
-	/** 生成したモデル */
-	public DomainModel idDomain;
-	
-	/** 生成したモデル */
-	public DomainModel nameDomain;
-	
-	// item
-	
-	/** 生成したモデル */
-	public TableModel tableItem;
-	
-	/** 生成したモデル */
-	public ColumnModel itemId;
-	
-	/** 生成したモデル */
-	public ColumnModel itemName;
-	
-	/** 生成したモデル */
-	public ColumnModel itemPrice;
-	
-	/** 生成したモデル */
-	public PrimaryKey itemPk;
-	
-	// user
-	
-	/** 生成したモデル */
-	public TableModel tableUser;
-	
-	/** 生成したモデル */
-	public ColumnModel userId;
-	
-	/** 生成したモデル */
-	public ColumnModel userName;
-	
-	/** 生成したモデル */
-	public PrimaryKey userPk;
-	
-	// order
-	
-	/** 生成したモデル */
-	public TableModel tableOrder;
-	
-	/** 生成したモデル */
-	public ColumnModel orderId;
-	
-	/** 生成したモデル */
-	public ColumnModel orderUserId;
-	
-	/** 生成したモデル */
-	public ColumnModel orderDate;
-	
-	/** 生成したモデル */
-	public PrimaryKey orderPk;
-	
-	// detail
-	
-	/** 生成したモデル */
-	public TableModel tableDetail;
-	
-	/** 生成したモデル */
-	public ColumnModel detailId;
-	
-	/** 生成したモデル */
-	public ColumnModel detailOrderId;
-	
-	/** 生成したモデル */
-	public ColumnModel detailItemId;
-	
-	/** 生成したモデル */
-	public ColumnModel detailQuantity;
-	
-	/** 生成したモデル */
-	public PrimaryKey detailPk;
-	
-	// fk
-	
-	/** 生成したモデル */
-	public ForeignKey fkDetailItem;
-	
-	/** 生成したモデル */
-	public ForeignKey fkDetailOrder;
-	
-	/** 生成したモデル */
-	public ForeignKey fkOrderUser;
-	
-
-	/**
-	 * インスタンスを生成する。
-	 */
-	public TestModelBuilder2() {
-		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param instruction 設定オブジェクト
-	 */
-	public TestModelBuilder2(Instruction instruction) {
-		this(UuidStrategy.FIXED, instruction, Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param instruction 設定オブジェクト
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder2(Instruction instruction, Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, instruction, jiemamy);
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder2(Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, new Instruction(), jiemamy);
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 */
-	public TestModelBuilder2(UuidStrategy uuid) {
-		this(uuid, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param instruction 設定オブジェクト
-	 */
-	public TestModelBuilder2(UuidStrategy uuid, Instruction instruction) {
-		this(uuid, instruction, Jiemamy.newInstance());
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param instruction 設定オブジェクト
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder2(UuidStrategy uuid, Instruction instruction, Jiemamy jiemamy) {
-		this.uuid = uuid;
-		this.instruction = instruction;
-		this.jiemamy = jiemamy;
-		factory = jiemamy.getFactory();
-		
-		if (factory.hasRootModel() && uuid == UuidStrategy.FIXED) {
-			throw new IllegalArgumentException();
-		}
-		rootModel = jiemamy.getFactory().getRootModel(uuid.get("6cbba964-6809-4eb9-936d-ec318012322c"));
-	}
-	
-	/**
-	 * インスタンスを生成する。
-	 * 
-	 * @param uuid UUID生成ストラテジ
-	 * @param jiemamy コンテキスト
-	 */
-	public TestModelBuilder2(UuidStrategy uuid, Jiemamy jiemamy) {
-		this(UuidStrategy.FIXED, new Instruction(), Jiemamy.newInstance());
-	}
-	
-	/**
-	 * モデルをビルドする。
-	 */
-	public void build() {
-		rootModel.setDialectClassName(DIALECT_CLASS_NAME);
-		rootModel.setBeginScript("BEGIN;");
-		rootModel.setEndScript("COMMIT;");
-		rootModel.setDescription("Jiemamyテストモデル2");
-		rootModel.setSchemaName("BAR");
-		
-		createDomains();
-		createEntities();
-		createForeignKeys();
-		createDataSets();
-	}
-	
-	/**
-	 * ビルドしたモデルを持つJiemamyオブジェクトを取得する。
-	 * 
-	 * @return Jiemamyオブジェクト
-	 */
-	public Jiemamy getJiemamy() {
-		return jiemamy;
-	}
-	
-	/**
-	 * データセットを生成する。
-	 */
-	protected void createDataSets() {
-		if (instruction.supressUseDataSet) {
-			return;
-		}
-		// データセットの生成・追加(1)
-		DataSetModel dataSetEn = factory.newModel(DataSetModel.class);
-		dataSetEn.setName("データ群en");
-		DataSetUtil.setRecord(dataSetEn, tableItem, createDataSetEnItem());
-		DataSetUtil.setRecord(dataSetEn, tableUser, createDataSetEnUser());
-		DataSetUtil.setRecord(dataSetEn, tableOrder, createDataSetEnOrder());
-		DataSetUtil.setRecord(dataSetEn, tableDetail, createDataSetEnDetail());
-		rootModel.getDataSets().add(dataSetEn);
-		
-		// データセットの生成・追加(2)
-		DataSetModel dataSetJa = factory.newModel(DataSetModel.class);
-		dataSetJa.setName("データ群ja");
-		DataSetUtil.setRecord(dataSetJa, tableItem, createDataSetJaItem());
-		DataSetUtil.setRecord(dataSetJa, tableUser, createDataSetJaUser());
-		DataSetUtil.setRecord(dataSetJa, tableOrder, createDataSetJaOrder());
-		DataSetUtil.setRecord(dataSetJa, tableDetail, createDataSetJaDetail());
-		rootModel.getDataSets().add(dataSetJa);
-	}
-	
-	/**
-	 * ドメインを生成する。
-	 */
-	protected void createDomains() {
-		if (instruction.supressUseDomain) {
-			return;
-		}
-		
-		idDomain = factory.newModel(DomainModel.class, uuid.get("9a3ba23c-b328-4c70-a32d-3e4be3ee3f08"));
-		idDomain.setName("ID");
-		idDomain.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		idDomain.setNotNullConstraint(factory.newModel(NotNullConstraint.class));
-		idDomain.getAdapter(SerialDataTypeAdapter.class).setSerial(true);
-		rootModel.getDomains().add(idDomain);
-		
-		nameDomain = factory.newModel(DomainModel.class, uuid.get("e2ebf8a7-90d8-48d4-9b5d-8d2e2601b193"));
-		nameDomain.setName("NAME");
-		nameDomain.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
-		nameDomain.setDescription("人名用の型です。");
-		rootModel.getDomains().add(nameDomain);
-	}
-	
-	/**
-	 * エンティティを生成する。
-	 */
-	protected void createEntities() {
-		createTableItem();
-		rootModel.getEntities().add(tableItem);
-		createTableUser();
-		rootModel.getEntities().add(tableUser);
-		createTableOrder();
-		rootModel.getEntities().add(tableOrder);
-		createTableDetail();
-		rootModel.getEntities().add(tableDetail);
-	}
-	
-	/**
-	 * 外部キーを生成する。
-	 */
-	protected void createForeignKeys() {
-		if (instruction.supressUseForeignKey) {
-			return;
-		}
-		
-		fkDetailItem = factory.newModel(ForeignKey.class, uuid.get("df781ad0-112a-4db7-a76c-4395b15600b2"));
-		KeyConstraintUtil.addKeyColumn(fkDetailItem, detailItemId);
-		ForeignKeyUtil.addReferenceColumn(fkDetailItem, itemId);
-		fkDetailItem.setOnDelete(ReferentialAction.RESTRICT);
-		tableDetail.getAttributes().add(fkDetailItem);
-		
-		fkDetailOrder = factory.newModel(ForeignKey.class, uuid.get("fca97c96-db8c-44b4-8427-6207601eaa94"));
-		KeyConstraintUtil.addKeyColumn(fkDetailOrder, detailOrderId);
-		ForeignKeyUtil.addReferenceColumn(fkDetailOrder, orderId);
-		fkDetailOrder.setOnDelete(ReferentialAction.CASCADE);
-		Deferrability deferrability =
-				factory.newModel(Deferrability.class, uuid.get("1726a29c-0984-4042-b2c3-c601671892a1"));
-		deferrability.setInitiallyCheckTime(InitiallyCheckTime.DEFERRED);
-		fkDetailOrder.setDeferrability(deferrability);
-		tableDetail.getAttributes().add(fkDetailOrder);
-		
-		fkOrderUser = factory.newModel(ForeignKey.class, uuid.get("325b5aa9-821e-4791-aac5-2d3eb64f9392"));
-		KeyConstraintUtil.addKeyColumn(fkOrderUser, orderUserId);
-		ForeignKeyUtil.addReferenceColumn(fkOrderUser, userId);
-		fkOrderUser.setOnDelete(ReferentialAction.RESTRICT);
-		Deferrability deferrability2 =
-				factory.newModel(Deferrability.class, uuid.get("899f5889-ac30-44dc-b078-35a1b1edc8f0"));
-		deferrability2.setInitiallyCheckTime(InitiallyCheckTime.IMMEDIATE);
-		fkOrderUser.setDeferrability(deferrability2);
-		tableOrder.getAttributes().add(fkOrderUser);
-	}
-	
-	private List<RecordModel> createDataSetEnDetail() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("546244f5-afa2-4e7e-bde0-5a811ced77af"));
-		RecordUtil.addValue(record, detailId, ID_1);
-		RecordUtil.addValue(record, detailOrderId, ID_1);
-		RecordUtil.addValue(record, detailItemId, ID_1);
-		RecordUtil.addValue(record, detailQuantity, "1");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("943fda94-a3f2-4c47-b19f-9e8655b47362"));
-		RecordUtil.addValue(record, detailId, ID_2);
-		RecordUtil.addValue(record, detailOrderId, ID_1);
-		RecordUtil.addValue(record, detailItemId, ID_4);
-		RecordUtil.addValue(record, detailQuantity, "3");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("d11db81a-2d53-42b4-9f10-17f98f1f7081"));
-		RecordUtil.addValue(record, detailId, ID_3);
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_2);
-		RecordUtil.addValue(record, detailQuantity, "2");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("0aa0dd6f-5656-4994-abfe-05f05aec7275"));
-		RecordUtil.addValue(record, detailId, ID_4);
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_3);
-		RecordUtil.addValue(record, detailQuantity, "6");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("4b9be90a-886f-47d8-89f0-da03d7ad419e"));
-		RecordUtil.addValue(record, detailId, "5");
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_4);
-		RecordUtil.addValue(record, detailQuantity, "12");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("23665133-7f4e-4f65-af7c-0de1b655f7c9"));
-		RecordUtil.addValue(record, detailId, "5");
-		RecordUtil.addValue(record, detailOrderId, ID_3);
-		RecordUtil.addValue(record, detailItemId, ID_2);
-		RecordUtil.addValue(record, detailQuantity, "1");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetEnItem() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("7162b83a-1815-4b08-8c11-8e6400c05a9e"));
-		RecordUtil.addValue(record, itemId, ID_1);
-		RecordUtil.addValue(record, itemName, "DIAMOND");
-		RecordUtil.addValue(record, itemPrice, "100000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("a3d6480d-9088-49d8-a500-872262a635d5"));
-		RecordUtil.addValue(record, itemId, ID_2);
-		RecordUtil.addValue(record, itemName, "EMERALD");
-		RecordUtil.addValue(record, itemPrice, "75000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("bf4556ff-fb81-472c-945d-14067945e7c2"));
-		RecordUtil.addValue(record, itemId, ID_3);
-		RecordUtil.addValue(record, itemName, "RUBY");
-		RecordUtil.addValue(record, itemPrice, "30000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("fc30dd3e-495d-4f7c-9237-dd9f84c14eb5"));
-		RecordUtil.addValue(record, itemId, ID_4);
-		RecordUtil.addValue(record, itemName, "SAPPHIRE");
-		RecordUtil.addValue(record, itemPrice, "10000");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetEnOrder() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("bf813157-8690-4eb3-9168-cd4906f13f27"));
-		RecordUtil.addValue(record, orderId, ID_1);
-		RecordUtil.addValue(record, orderUserId, ID_2);
-		RecordUtil.addValue(record, orderDate, "2009-01-23 00:11:22");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("645b241d-a6ba-4821-8682-448f59949b3e"));
-		RecordUtil.addValue(record, orderId, ID_2);
-		RecordUtil.addValue(record, orderUserId, ID_3);
-		RecordUtil.addValue(record, orderDate, "2009-01-23 00:22:33");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("654ceb1b-b6eb-406d-8eac-aa07c7c41e62"));
-		RecordUtil.addValue(record, orderId, ID_2);
-		RecordUtil.addValue(record, orderUserId, ID_2);
-		RecordUtil.addValue(record, orderDate, "2009-01-24 00:33:44");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetEnUser() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("c60fb4ba-e3d6-415e-a22c-20fbaf4e04e6"));
-		RecordUtil.addValue(record, userId, ID_1);
-		RecordUtil.addValue(record, userName, "SMITH");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("83d5c923-7c61-4393-8185-ac95042f6476"));
-		RecordUtil.addValue(record, userId, ID_2);
-		RecordUtil.addValue(record, userName, "ALLEN");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("2ddd8857-3fca-4020-bb23-49d0126af6fc"));
-		RecordUtil.addValue(record, userId, ID_3);
-		RecordUtil.addValue(record, userName, "WARD");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("2b9aeb38-97de-439e-b96b-40a1c82d249e"));
-		RecordUtil.addValue(record, userId, ID_4);
-		RecordUtil.addValue(record, userName, "JONES");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("a6242c24a-b415-4a93-867b-16a68c2fe884"));
-		RecordUtil.addValue(record, userId, "5");
-		RecordUtil.addValue(record, userName, "MARTIN");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("3b9d3161-a613-4090-a095-708433b23491"));
-		RecordUtil.addValue(record, userId, "6");
-		RecordUtil.addValue(record, userName, "BLAKE");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("aeaad211-b62e-4a35-b410-d107753469e9"));
-		RecordUtil.addValue(record, userId, "7");
-		RecordUtil.addValue(record, userName, "CLARK");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("8c7c220d-ff7f-48c4-9ce7-1395ed1816fa"));
-		RecordUtil.addValue(record, userId, "8");
-		RecordUtil.addValue(record, userName, "SCOTT");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaDetail() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("5a6604ce-6ed2-4542-b009-2a3264b0946a"));
-		RecordUtil.addValue(record, detailId, ID_1);
-		RecordUtil.addValue(record, detailOrderId, ID_1);
-		RecordUtil.addValue(record, detailItemId, ID_1);
-		RecordUtil.addValue(record, detailQuantity, "1");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("db883c9c-b7d3-44f4-88ba-d9753eeae58a"));
-		RecordUtil.addValue(record, detailId, ID_2);
-		RecordUtil.addValue(record, detailOrderId, ID_1);
-		RecordUtil.addValue(record, detailItemId, ID_4);
-		RecordUtil.addValue(record, detailQuantity, "3");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("04e92727-483c-42ad-b671-c1e4661c1844"));
-		RecordUtil.addValue(record, detailId, ID_3);
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_2);
-		RecordUtil.addValue(record, detailQuantity, "2");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("f5147476-8bc6-4656-9d0c-fd883a24a18c"));
-		RecordUtil.addValue(record, detailId, ID_4);
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_3);
-		RecordUtil.addValue(record, detailQuantity, "6");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("d849f188-9940-4ecc-98a8-868dac5b3b4e"));
-		RecordUtil.addValue(record, detailId, "5");
-		RecordUtil.addValue(record, detailOrderId, ID_2);
-		RecordUtil.addValue(record, detailItemId, ID_4);
-		RecordUtil.addValue(record, detailQuantity, "12");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("2abef8cc-bfb7-4565-ba4e-afca3bf98811"));
-		RecordUtil.addValue(record, detailId, "5");
-		RecordUtil.addValue(record, detailOrderId, ID_3);
-		RecordUtil.addValue(record, detailItemId, ID_2);
-		RecordUtil.addValue(record, detailQuantity, "1");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaItem() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("5fd803d4-5a05-496b-813e-6399955a79bb"));
-		RecordUtil.addValue(record, itemId, ID_1);
-		RecordUtil.addValue(record, itemName, "ダイヤモンド");
-		RecordUtil.addValue(record, itemPrice, "100000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("d59e426b-e5ed-433e-8d5a-e748dc75af60"));
-		RecordUtil.addValue(record, itemId, ID_2);
-		RecordUtil.addValue(record, itemName, "エメラルド");
-		RecordUtil.addValue(record, itemPrice, "75000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("59e0a554-162a-4c48-b13d-1dda7fc936e0"));
-		RecordUtil.addValue(record, itemId, ID_3);
-		RecordUtil.addValue(record, itemName, "ルビー");
-		RecordUtil.addValue(record, itemPrice, "30000");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("1c86858f-1e8b-4fc5-807f-f0548e1811e4"));
-		RecordUtil.addValue(record, itemId, ID_4);
-		RecordUtil.addValue(record, itemName, "サファイヤ");
-		RecordUtil.addValue(record, itemPrice, "10000");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaOrder() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("2bdf3969-c2e5-4e3e-a939-2907ca3a5b6a"));
-		RecordUtil.addValue(record, orderId, ID_1);
-		RecordUtil.addValue(record, orderUserId, ID_2);
-		RecordUtil.addValue(record, orderDate, "2009-01-23 00:11:22");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("cca67c6f-a3b2-4b43-a466-be72ccd66e8f"));
-		RecordUtil.addValue(record, orderId, ID_2);
-		RecordUtil.addValue(record, orderUserId, ID_3);
-		RecordUtil.addValue(record, orderDate, "2009-01-23 00:22:33");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("1f74ab8a-3191-464b-89c3-f4f3dddb8ce8"));
-		RecordUtil.addValue(record, orderId, ID_2);
-		RecordUtil.addValue(record, orderUserId, ID_2);
-		RecordUtil.addValue(record, orderDate, "2009-01-24 00:33:44");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private List<RecordModel> createDataSetJaUser() {
-		List<RecordModel> result = new ArrayList<RecordModel>();
-		
-		RecordModel record = factory.newModel(RecordModel.class, uuid.get("25288a67-b4c7-4296-8113-835afeb15c9d"));
-		RecordUtil.addValue(record, userId, ID_1);
-		RecordUtil.addValue(record, userName, "鈴木 茂");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("20a62610-ad04-479f-85c6-a1340e26adb5"));
-		RecordUtil.addValue(record, userId, ID_2);
-		RecordUtil.addValue(record, userName, "内海 透");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("d8fa5455-9791-46fc-9695-da7a5167f7ea"));
-		RecordUtil.addValue(record, userId, ID_3);
-		RecordUtil.addValue(record, userName, "村瀬 武彦");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("3cc66837-d604-4af8-af01-343924e9f058"));
-		RecordUtil.addValue(record, userId, ID_4);
-		RecordUtil.addValue(record, userName, "近藤 美樹");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("2f09b9fe-78fd-4f8a-abf2-f077040f45f2"));
-		RecordUtil.addValue(record, userId, "5");
-		RecordUtil.addValue(record, userName, "榊 美子");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("e3431be3-462c-4419-a2a0-e821597490cc"));
-		RecordUtil.addValue(record, userId, "6");
-		RecordUtil.addValue(record, userName, "三浦 佑");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("c50a3e24-dd00-4969-aae9-69cf9be7f035"));
-		RecordUtil.addValue(record, userId, "7");
-		RecordUtil.addValue(record, userName, "前島 孝幸");
-		result.add(record);
-		
-		record = factory.newModel(RecordModel.class, uuid.get("890bf55f-8bfd-420c-a9df-801da73bc46d"));
-		RecordUtil.addValue(record, userId, "8");
-		RecordUtil.addValue(record, userName, "島崎 由比");
-		result.add(record);
-		
-		return result;
-	}
-	
-	private void createTableDetail() {
-		tableDetail = factory.newModel(TableModel.class, uuid.get("5705ed1a-f329-4f21-9956-94caf4863fba"));
-		tableDetail.setName("T_DETAIL");
-		tableDetail.setLogicalName("明細");
-		tableDetail.setDescription("明細テーブルです。");
-		
-		detailId = factory.newModel(ColumnModel.class, uuid.get("d3571020-4e1b-4158-958d-b5460fa6c32c"));
-		detailId.setName("ID");
-		if (instruction.supressUseDomain) {
-			detailId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(detailId, idDomain);
-		}
-		detailId.setLogicalName("ユーザID");
-		tableDetail.getAttributes().add(detailId);
-		
-		detailOrderId = factory.newModel(ColumnModel.class, uuid.get("a28c64c6-b379-41a4-9563-b774f5bce165"));
-		detailOrderId.setName("ORDER_ID");
-		detailOrderId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		tableDetail.getAttributes().add(detailOrderId);
-		
-		detailItemId = factory.newModel(ColumnModel.class, uuid.get("b4d50786-3b3e-4557-baa3-b739159f0530"));
-		detailItemId.setName("ITEM_ID");
-		detailItemId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		tableDetail.getAttributes().add(detailItemId);
-		
-		detailQuantity = factory.newModel(ColumnModel.class, uuid.get("77bb21f4-e793-4198-a695-42363dac2216"));
-		detailQuantity.setName("QUANTITY");
-		detailQuantity.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		tableDetail.getAttributes().add(detailQuantity);
-		
-		detailPk = factory.newModel(PrimaryKey.class, uuid.get("90243681-19af-4bc0-9e6f-f814fbc58f85"));
-		detailPk.getKeyColumns().add(factory.newReference(detailId));
-		tableDetail.getAttributes().add(detailPk);
-		
-		for (ColumnModel columnModel : Arrays.asList(detailOrderId, detailItemId, detailQuantity)) {
-			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
-			columnModel.setNotNullConstraint(notNull);
-		}
-	}
-	
-	private void createTableItem() {
-		tableItem = factory.newModel(TableModel.class, uuid.get("7ecf5ba1-e80c-472c-b19b-bef2649d7974"));
-		tableItem.setName("T_ITEM");
-		tableItem.setBeginScript("/* test begin script of T_ITEM */");
-		tableItem.setEndScript("/* test end script of T_ITEM */");
-		tableItem.setDescription("商品マスタです。");
-		
-		itemId = factory.newModel(ColumnModel.class, uuid.get("5a9585be-4b0d-4675-99aa-97b0417c816c"));
-		itemId.setName("ID");
-		if (instruction.supressUseDomain) {
-			itemId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(itemId, idDomain);
-		}
-		itemId.setLogicalName("商品ID");
-		tableItem.getAttributes().add(itemId);
-		
-		itemName = factory.newModel(ColumnModel.class, uuid.get("5c9b38e1-2cc9-45f9-ad3f-20b02471cc40"));
-		itemName.setName("NAME");
-		itemName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
-		itemName.setLogicalName("商品名");
-		itemName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
-		tableItem.getAttributes().add(itemName);
-		
-		itemPrice = factory.newModel(ColumnModel.class, uuid.get("7a0cabe3-d382-4e5d-845b-dadd1b637a5f"));
-		itemPrice.setName("PRICE");
-		itemPrice.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(20).build());
-		itemPrice.setLogicalName("価格");
-		tableItem.getAttributes().add(itemPrice);
-		
-		itemPk = factory.newModel(PrimaryKey.class, uuid.get("32b2b2f3-e668-404b-9478-56f1e680f915"));
-		itemPk.getKeyColumns().add(factory.newReference(itemId));
-		tableItem.getAttributes().add(itemPk);
-		
-		for (ColumnModel columnModel : Arrays.asList(itemName, itemPrice)) {
-			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
-			columnModel.setNotNullConstraint(notNull);
-		}
-	}
-	
-	private void createTableOrder() {
-		tableOrder = factory.newModel(TableModel.class, uuid.get("cefee0d9-d23f-441b-986a-66660354ec74"));
-		tableOrder.setName("T_ORDER");
-		tableOrder.setLogicalName("注文");
-		tableOrder.setDescription("注文テーブルです。");
-		
-		orderId = factory.newModel(ColumnModel.class, uuid.get("b647212a-4d8f-4d18-88e4-5397e54ebe67"));
-		orderId.setName("ID");
-		if (instruction.supressUseDomain) {
-			orderId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(orderId, idDomain);
-		}
-		orderId.setLogicalName("注文ID");
-		tableOrder.getAttributes().add(orderId);
-		
-		orderUserId = factory.newModel(ColumnModel.class, uuid.get("db7a2f62-9658-406a-9dc1-8b90ae2da47c"));
-		orderUserId.setName("USER_ID");
-		orderUserId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		orderUserId.setLogicalName("オーダーユーザID");
-		tableOrder.getAttributes().add(orderUserId);
-		
-		orderDate = factory.newModel(ColumnModel.class, uuid.get("4ce761b0-137b-4105-ad2a-2efcba5e6bc4"));
-		orderDate.setName("ORDER_DATE");
-		orderDate.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.TIMESTAMP).build());
-		tableOrder.getAttributes().add(orderDate);
-		
-		orderPk = factory.newModel(PrimaryKey.class, uuid.get("b204ff42-537b-4e14-bf61-e9baf1b119dc"));
-		orderPk.getKeyColumns().add(factory.newReference(orderId));
-		tableOrder.getAttributes().add(orderPk);
-		
-		for (ColumnModel columnModel : Arrays.asList(orderUserId, orderDate)) {
-			NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
-			columnModel.setNotNullConstraint(notNull);
-		}
-	}
-	
-	private void createTableUser() {
-		tableUser = factory.newModel(TableModel.class, uuid.get("0802ef7b-b2da-4fc4-8104-0c99a1e472d5"));
-		tableUser.setName("T_USER");
-		tableUser.setLogicalName("ユーザ");
-		tableUser.setDescription("ユーザマスタです。");
-		
-		userId = factory.newModel(ColumnModel.class, uuid.get("6b022a79-45a6-4be4-9d3d-cfb27042a08e"));
-		userId.setName("ID");
-		if (instruction.supressUseDomain) {
-			userId.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.INTEGER).build());
-		} else {
-			ColumnUtil.setDataType(userId, idDomain);
-		}
-		userId.setLogicalName("ユーザID");
-		tableUser.getAttributes().add(userId);
-		
-		userName = factory.newModel(ColumnModel.class, uuid.get("dacc68d2-fe32-4f4b-8082-9d55232ba7da"));
-		userName.setName("NAME");
-		if (instruction.supressUseDomain) {
-			userName.setDataType(new DataTypeBuilderImpl(factory, DataTypeCategory.VARCHAR).setSize(32).build());
-		} else {
-			ColumnUtil.setDataType(userName, nameDomain);
-		}
-		userName.setLogicalName("ユーザ名");
-		userName.setDefaultValue("no name");
-		userName.getAdapter(RepresentationAdapter.class).setRepresentation(true);
-		tableUser.getAttributes().add(userName);
-		
-		userPk = factory.newModel(PrimaryKey.class, uuid.get("dac295e3-c390-46ee-9a5b-e89636ab9d7e"));
-		userPk.getKeyColumns().add(factory.newReference(userId));
-		tableUser.getAttributes().add(userPk);
-		
-		NotNullConstraint notNull = factory.newModel(NotNullConstraint.class);
-		userName.setNotNullConstraint(notNull);
-	}
-}

Added: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleaner.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleaner.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleaner.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/04/04
+ *
+ * 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.utils;
+
+import java.io.IOException;
+import java.net.URL;
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.SQLException;
+import java.util.List;
+import java.util.Properties;
+
+import org.jiemamy.Jiemamy;
+import org.jiemamy.JiemamyFactory;
+import org.jiemamy.composer.ImportException;
+import org.jiemamy.composer.importer.DatabaseImportConfig;
+import org.jiemamy.composer.importer.DatabaseImporter;
+import org.jiemamy.exception.DriverNotFoundException;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.model.entity.EntityModel;
+import org.jiemamy.model.entity.TableModel;
+
+/**
+ * TODO for daisuke
+ * 
+ * @author daisuke
+ */
+public class DatabaseCleaner {
+	
+	public void clean(DatabaseImportConfig config) throws ImportException {
+		Jiemamy jiemamy = Jiemamy.newInstance();
+		JiemamyFactory factory = jiemamy.getFactory();
+		RootModel rootModel = factory.getRootModel();
+		DatabaseImporter databaseImporter = new DatabaseImporter();
+		databaseImporter.importModel(rootModel, config);
+		
+		List<EntityModel> sortedEntityList = EntityDependencyCalculator.getSortedEntityList(rootModel);
+		ListUtil.reverse(sortedEntityList);
+		
+		Connection connection = null;
+		try {
+			Properties props = new Properties();
+			props.setProperty("user", config.getUsername());
+			props.setProperty("password", config.getPassword());
+			
+			URL[] paths = config.getDriverJarPath();
+			String className = config.getDriverClassName();
+			Driver driver = DriverUtil.getDriverInstance(paths, className);
+			connection = driver.connect(config.getUri(), props);
+			
+			SqlExecuter sqlExecuter = new SqlExecuter(connection);
+			for (EntityModel entityModel : sortedEntityList) {
+				String type = entityModel instanceof TableModel ? "TABLE" : "VIEW";
+				sqlExecuter.execute(String.format("DROP %s \"%s\";", type, entityModel.getName()));
+			}
+			
+		} catch (DriverNotFoundException e) {
+			throw new ImportException(e);
+		} catch (InstantiationException e) {
+			throw new ImportException(e);
+		} catch (IllegalAccessException e) {
+			throw new ImportException(e);
+		} catch (IOException e) {
+			throw new ImportException(e);
+		} catch (SQLException e) {
+			throw new ImportException(e);
+		} catch (Exception e) {
+			throw new ImportException(e);
+		} finally {
+			JmIOUtil.closeQuietly(connection);
+		}
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleaner.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleanerTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleanerTest.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleanerTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/04/04
+ *
+ * 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.utils;
+
+import java.io.File;
+import java.net.URL;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.jiemamy.composer.importer.DefaultDatabaseImportConfig;
+import org.jiemamy.dialect.Dialect;
+import org.jiemamy.internal.test.ReflectionDialectProvider;
+
+/**
+ * TODO for daisuke
+ * 
+ * @author daisuke
+ */
+public class DatabaseCleanerTest {
+	
+	private DatabaseCleaner databaseCleaner;
+	
+
+	/**
+	 * テストを初期化する。
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@Before
+	public void setUp() throws Exception {
+		databaseCleaner = new DatabaseCleaner();
+	}
+	
+	/**
+	 * テストの情報を破棄する。
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@After
+	public void tearDown() throws Exception {
+		databaseCleaner = null;
+	}
+	
+	/**
+	 * TODO for daisuke
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@Test
+	public void testname() throws Exception {
+		DefaultDatabaseImportConfig config = new DefaultDatabaseImportConfig();
+		ReflectionDialectProvider reflectionDialectProvider = new ReflectionDialectProvider();
+		Dialect dialect = reflectionDialectProvider.getInstance("org.jiemamy.dialect.postgresql.PostgresqlDialect");
+		config.setDialect(dialect);
+		config.setDriverClassName("org.postgresql.Driver");
+		config.setDriverJarPath(new URL[] {
+			new File("./src/test/resources/postgresql-8.3-603.jdbc3.jar").toURL()
+		});
+		config.setUsername("postgres");
+		config.setPassword("postgres");
+		config.setSchema("public");
+		config.setUri("jdbc:postgresql://localhost:5432/jiemamy");
+		
+		databaseCleaner.clean(config);
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/DatabaseCleanerTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/SqlExecuter.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/SqlExecuter.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/SqlExecuter.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -24,6 +24,8 @@
 import java.sql.Statement;
 
 import org.apache.commons.lang.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * TODO for daisuke
@@ -32,6 +34,8 @@
  */
 public class SqlExecuter {
 	
+	private static Logger logger = LoggerFactory.getLogger(SqlExecuter.class);
+	
 	private final Connection connection;
 	
 
@@ -53,6 +57,7 @@
 	 * @throws SQLException
 	 */
 	public ResultSet execute(String sql) throws SQLException {
+		logger.info(sql);
 		Statement statement = null;
 		ResultSet resultSet = null;
 		try {

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/exporter/SqlExporterTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/exporter/SqlExporterTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/composer/exporter/SqlExporterTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -38,7 +38,7 @@
 import org.jiemamy.JiemamyFactory;
 import org.jiemamy.composer.Exporter;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 
 /**
@@ -66,7 +66,7 @@
 	@Before
 	public void setUp() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		factory = jiemamy.getFactory();
 	}

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -32,7 +32,7 @@
 import org.jiemamy.dialect.internal.impl.DefaultDataTypeResolver;
 import org.jiemamy.dialect.internal.impl.DefaultSqlEmitter;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.sql.SqlStatement;
 import org.jiemamy.utils.model.RootModelUtil;
 
@@ -58,7 +58,7 @@
 	@Before
 	public void setUp() throws Exception {
 		jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		Dialect dialect = RootModelUtil.getDialect(mb.rootModel);
 		sqlEmitter = new DefaultSqlEmitter(new DefaultDataTypeResolver(dialect.getMoldManager()));

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/test/TestModelBuilder2Test.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/test/TestModelBuilder2Test.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/test/TestModelBuilder2Test.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -47,7 +47,7 @@
 import org.jiemamy.validator.Problem;
 
 /**
- * {@link TestModelBuilder2}のテストクラス。
+ * {@link CoreTestModelBuilder2}のテストクラス。
  * 
  * <p>コピペで組み立ててたら整合性が不安になったので作ってみたw</p>
  * 
@@ -57,7 +57,7 @@
 	
 	private static Logger logger = LoggerFactory.getLogger(TestModelBuilder2Test.class);
 	
-	private TestModelBuilder2 mb;
+	private CoreTestModelBuilder2 mb;
 	
 
 	/**
@@ -68,7 +68,7 @@
 	@Before
 	public void setUp() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		mb = new TestModelBuilder2(jiemamy);
+		mb = new CoreTestModelBuilder2(jiemamy);
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/AttributeUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/AttributeUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/AttributeUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -31,7 +31,7 @@
 import org.jiemamy.Artemis;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.attribute.AttributeModel;
 import org.jiemamy.model.entity.EntityModel;
@@ -44,7 +44,7 @@
  */
 public class AttributeUtilTest {
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -55,7 +55,7 @@
 	@Before
 	public void setUp() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		mb = new TestModelBuilder(jiemamy);
+		mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ColumnUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ColumnUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ColumnUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -29,7 +29,7 @@
 import org.jiemamy.Artemis;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 
 /**
  * {@link ColumnUtil}のテストクラス。
@@ -38,7 +38,7 @@
  */
 public class ColumnUtilTest {
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -49,7 +49,7 @@
 	@Before
 	public void setUp() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		mb = new TestModelBuilder(jiemamy);
+		mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/DataSetUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/DataSetUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/DataSetUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -34,7 +34,7 @@
 import org.jiemamy.Jiemamy;
 import org.jiemamy.JiemamyFactory;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.dataset.DataSetModel;
 import org.jiemamy.model.dataset.RecordModel;
@@ -61,7 +61,7 @@
 			"\"ID\",\"EMP_NO\",\"EMP_NAME\",\"MGR_ID\",\"HIREDATE\",\"SAL\",\"DEPT_ID\"\n"
 					+ "\"1\",\"99\",\"MIKE\",,\"2008-03-01\",\"90\",\"1\"\n";
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -72,7 +72,7 @@
 	@Before
 	public void setUp() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		mb = new TestModelBuilder(jiemamy);
+		mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EntityUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EntityUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EntityUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -30,8 +30,8 @@
 import org.jiemamy.Artemis;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
-import org.jiemamy.internal.test.TestModelBuilder2;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder2;
 import org.jiemamy.model.entity.EntityModel;
 
 /**
@@ -67,7 +67,7 @@
 	@Test
 	public void test01_getReferenceEntities_empDept() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		// /- EMP -> DEPT
 		// `___^
@@ -92,7 +92,7 @@
 	@Test
 	public void test02_getDependentEntities_empDept() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		// /- EMP -> DEPT
 		// `___^
@@ -117,7 +117,7 @@
 	@Test
 	public void test03_getReferenceEntities_order() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder2 mb = new TestModelBuilder2(jiemamy);
+		CoreTestModelBuilder2 mb = new CoreTestModelBuilder2(jiemamy);
 		mb.build();
 		// DETAIL +-> ORDER +-> USER
 		//        +-> ITEM
@@ -148,7 +148,7 @@
 	@Test
 	public void test04_getDependentEntities_order() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder2 mb = new TestModelBuilder2(jiemamy);
+		CoreTestModelBuilder2 mb = new CoreTestModelBuilder2(jiemamy);
 		mb.build();
 		// DETAIL +-> ORDER +-> USER
 		//        +-> ITEM

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EqualsUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EqualsUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/EqualsUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -28,7 +28,7 @@
 import org.jiemamy.Artemis;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 
 /**
@@ -50,12 +50,12 @@
 	public void test01_equals() throws Exception {
 		// 同じモデルを2個作る
 		Jiemamy jiemamy1 = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb1 = new TestModelBuilder(jiemamy1);
+		CoreTestModelBuilder mb1 = new CoreTestModelBuilder(jiemamy1);
 		mb1.build();
 		RootModel rootModel1 = mb1.getJiemamy().getFactory().getRootModel();
 		
 		Jiemamy jiemamy2 = Jiemamy.newInstance(new Artemis(), new ReflectionDialectProvider());
-		TestModelBuilder mb2 = new TestModelBuilder(jiemamy2);
+		CoreTestModelBuilder mb2 = new CoreTestModelBuilder(jiemamy2);
 		mb2.build();
 		RootModel rootModel2 = mb2.getJiemamy().getFactory().getRootModel();
 		

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ForeignKeyUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ForeignKeyUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/ForeignKeyUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -23,7 +23,7 @@
 import org.junit.Test;
 
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 
 /**
  * {@link ForeignKeyUtil}のテストクラス。
@@ -32,7 +32,7 @@
  */
 public class ForeignKeyUtilTest {
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -42,7 +42,7 @@
 	 */
 	@Before
 	public void setUp() throws Exception {
-		mb = new TestModelBuilder(new ReflectionDialectProvider());
+		mb = new CoreTestModelBuilder(new ReflectionDialectProvider());
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -32,7 +32,7 @@
 import org.jiemamy.dialect.Dialect;
 import org.jiemamy.dialect.generic.GenericDialect;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.entity.TableModel;
 import org.jiemamy.model.entity.ViewModel;
@@ -46,7 +46,7 @@
  */
 public class RootModelUtilTest {
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -56,7 +56,7 @@
 	 */
 	@Before
 	public void setUp() throws Exception {
-		mb = new TestModelBuilder(new ReflectionDialectProvider());
+		mb = new CoreTestModelBuilder(new ReflectionDialectProvider());
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/TableUtilTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/TableUtilTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/TableUtilTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -23,7 +23,7 @@
 import org.junit.Test;
 
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 
 /**
  * {@link TableUtil}のテストクラス。
@@ -32,7 +32,7 @@
  */
 public class TableUtilTest {
 	
-	private TestModelBuilder mb;
+	private CoreTestModelBuilder mb;
 	
 
 	/**
@@ -42,7 +42,7 @@
 	 */
 	@Before
 	public void setUp() throws Exception {
-		mb = new TestModelBuilder(new ReflectionDialectProvider());
+		mb = new CoreTestModelBuilder(new ReflectionDialectProvider());
 		mb.build();
 	}
 	

Modified: artemis/trunk/jiemamy-dialect-mysql/src/test/java/org/jiemamy/dialect/mysql/MySqlEmitterTest.java
===================================================================
--- artemis/trunk/jiemamy-dialect-mysql/src/test/java/org/jiemamy/dialect/mysql/MySqlEmitterTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-dialect-mysql/src/test/java/org/jiemamy/dialect/mysql/MySqlEmitterTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -41,7 +41,7 @@
 import org.jiemamy.dialect.mysql.adapter.StorageEngine;
 import org.jiemamy.dialect.mysql.adapter.StorageEngineImpl;
 import org.jiemamy.internal.model.datatype.adapter.SerialDataTypeAdapter;
-import org.jiemamy.internal.test.TestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.attribute.ColumnModel;
 import org.jiemamy.model.attribute.constraint.PrimaryKey;
@@ -72,7 +72,7 @@
 	 */
 	@Before
 	public void setUp() throws Exception {
-		TestModelBuilder mb = new TestModelBuilder();
+		CoreTestModelBuilder mb = new CoreTestModelBuilder();
 		mb.build();
 		
 		mb.tableDept.registerAdapter(new StorageEngineImpl());

Modified: artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/test/ViewTestModelBuilder.java
===================================================================
--- artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/test/ViewTestModelBuilder.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/test/ViewTestModelBuilder.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -38,12 +38,12 @@
  * 
  * @author daisuke
  */
-public class ViewTestModelBuilder extends TestModelBuilder {
+public class ViewTestModelBuilder extends CoreTestModelBuilder {
 	
 	/** StickyModel for Test */
 	protected StickyModel sticky;
 	
-	final int offset = 50;
+	private static final int OFFSET = 50;
 	
 
 	/**
@@ -122,9 +122,11 @@
 	}
 	
 	@Override
-	public void build() {
-		super.build();
+	public Jiemamy build() {
+		Jiemamy jiemamy = super.build();
 		createPresentations();
+		
+		return jiemamy;
 	}
 	
 	@Override
@@ -171,8 +173,8 @@
 			List<JmPoint> bendpoints = connectionProfile1.getBendpoints();
 			NodeProfile nodeProf = presentation1.getNodeProfiles().get(tableEmp.getAdapter(NodeAdapter.class));
 			JmRectangle boundary = nodeProf.getBoundary();
-			bendpoints.add(0, new JmPoint(Math.max(boundary.x - offset, 0), boundary.y));
-			bendpoints.add(1, new JmPoint(boundary.x, Math.max(boundary.y - offset, 0)));
+			bendpoints.add(0, new JmPoint(Math.max(boundary.x - OFFSET, 0), boundary.y));
+			bendpoints.add(1, new JmPoint(boundary.x, Math.max(boundary.y - OFFSET, 0)));
 			presentation1.getConnectionProfiles().put(fkEmpEmp.getAdapter(ConnectionAdapter.class), connectionProfile1);
 			
 			ConnectionProfile connectionProfile2 =

Modified: artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/connection/ConnectionModelImplTest.java
===================================================================
--- artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/connection/ConnectionModelImplTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/connection/ConnectionModelImplTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -31,8 +31,8 @@
 import org.jiemamy.ArtemisView;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
-import org.jiemamy.internal.test.TestModelBuilder2;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder2;
 import org.jiemamy.model.connection.ConnectionAdapter;
 import org.jiemamy.model.node.NodeAdapter;
 
@@ -69,7 +69,7 @@
 	@Test
 	public void test01_FKからコネクションが取得でき_そのソースとターゲットが正常に取得できる_empDept() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(new ArtemisView()), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		
 		ConnectionAdapter empDeptConnection = mb.fkEmpDept.getAdapter(ConnectionAdapter.class);
@@ -98,7 +98,7 @@
 	@Test
 	public void test02_FKからコネクションが取得でき_そのソースとターゲットが正常に取得できる_order() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(new ArtemisView()), new ReflectionDialectProvider());
-		TestModelBuilder2 mb = new TestModelBuilder2(jiemamy);
+		CoreTestModelBuilder2 mb = new CoreTestModelBuilder2(jiemamy);
 		mb.build();
 		
 		ConnectionAdapter detailItemConnection = mb.fkDetailItem.getAdapter(ConnectionAdapter.class);

Modified: artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/node/NodeModelImplTest.java
===================================================================
--- artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/node/NodeModelImplTest.java	2009-04-03 18:33:01 UTC (rev 3089)
+++ artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/model/node/NodeModelImplTest.java	2009-04-03 18:45:05 UTC (rev 3090)
@@ -33,8 +33,8 @@
 import org.jiemamy.ArtemisView;
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.test.ReflectionDialectProvider;
-import org.jiemamy.internal.test.TestModelBuilder;
-import org.jiemamy.internal.test.TestModelBuilder2;
+import org.jiemamy.internal.test.CoreTestModelBuilder;
+import org.jiemamy.internal.test.CoreTestModelBuilder2;
 import org.jiemamy.model.connection.ConnectionAdapter;
 import org.jiemamy.model.entity.EntityModel;
 import org.jiemamy.model.node.NodeAdapter;
@@ -72,7 +72,7 @@
 	@Test
 	public void test01_エンティティからノードが取得でき_そのソースConsとターゲットConsが正常に取得できる_empDept() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(new ArtemisView()), new ReflectionDialectProvider());
-		TestModelBuilder mb = new TestModelBuilder(jiemamy);
+		CoreTestModelBuilder mb = new CoreTestModelBuilder(jiemamy);
 		mb.build();
 		
 		NodeAdapter empNode = mb.tableEmp.getAdapter(NodeAdapter.class);
@@ -104,7 +104,7 @@
 	@Test
 	public void test02_エンティティからノードが取得でき_そのソースConsとターゲットConsが正常に取得できる_order() throws Exception {
 		Jiemamy jiemamy = Jiemamy.newInstance(new Artemis(new ArtemisView()), new ReflectionDialectProvider());
-		TestModelBuilder2 mb = new TestModelBuilder2(jiemamy);
+		CoreTestModelBuilder2 mb = new CoreTestModelBuilder2(jiemamy);
 		mb.build();
 		
 		NodeAdapter itemNode = mb.tableItem.getAdapter(NodeAdapter.class);



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