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);