svnno****@sourc*****
svnno****@sourc*****
2009年 4月 30日 (木) 21:03:35 JST
Revision: 3341 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3341 Author: daisuke_m Date: 2009-04-30 21:03:35 +0900 (Thu, 30 Apr 2009) Log Message: ----------- depったメソッドの使用を一部回避。 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/composer/exporter/SqlExporter.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultDataTypeResolver.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultForeignKeyImportVisitor.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/JiemamyFacadeImpl.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/entity/TableModelImpl.java artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/JiemamyFacadeImplTest.java artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/JiemamyViewFacadeImpl.java artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/connection/ConnectionAdapterImpl.java artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/node/NodeAdapterImpl.java artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/JiemamyViewFacadeImplTest.java zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/JiemamyImplementation.java zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/entity/TableModel.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-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-artemis-test/src/test/java/org/jiemamy/internal/serializer/SerializationTest.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -62,7 +62,6 @@ import org.jiemamy.serializer.JiemamySerializer; import org.jiemamy.serializer.SerializationException; import org.jiemamy.utils.model.EqualsUtil; -import org.jiemamy.utils.model.RootModelUtil; import org.jiemamy.validator.AllValidator; import org.jiemamy.validator.Problem; import org.jiemamy.validator.Validator; @@ -158,7 +157,7 @@ assertThat(jxpath.getValue("domains[2]/logicalName"), is(nullValue())); logger.info("***Entities"); - Collection<TableModel> tables = RootModelUtil.getEntities(rootModel, TableModel.class); + Collection<TableModel> tables = rootModel.getEntities(TableModel.class); for (TableModel tableModel : tables) { logger.info(" Table:" + tableModel.getId() + "," + tableModel.getName() + "," + tableModel.getLogicalName() + "," + tableModel.getDescription()); @@ -169,7 +168,7 @@ } assertThat(tables.size(), is(2)); - Collection<ViewModel> views = RootModelUtil.getEntities(rootModel, ViewModel.class); + Collection<ViewModel> views = rootModel.getEntities(ViewModel.class); for (ViewModel view : views) { logger.info(" View:" + view); } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExporter.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExporter.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExporter.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -37,7 +37,6 @@ import org.jiemamy.dialect.Dialect; import org.jiemamy.model.RootModel; import org.jiemamy.model.sql.SqlStatement; -import org.jiemamy.utils.model.RootModelUtil; /** * モデルからSQLを構築するエクスポータ。 @@ -69,7 +68,7 @@ Writer writer = null; try { - Dialect dialect = RootModelUtil.getDialect(rootModel); + Dialect dialect = rootModel.findDialect(); List<SqlStatement> statements = dialect.emitStatements(rootModel, config); Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultDataTypeResolver.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultDataTypeResolver.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultDataTypeResolver.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -40,7 +40,6 @@ import org.jiemamy.model.datatype.adapter.TimezonedDataTypeAdapter; import org.jiemamy.model.sql.Token; import org.jiemamy.utils.CollectionsUtil; -import org.jiemamy.utils.model.DataTypeUtil; /** * SQL方言において、{@link DataType}と型名(String)間の解決を行うクラス。 @@ -65,7 +64,7 @@ public List<Token> resolveDataType(DataType dataType, ReferenceResolver resolver) { List<Token> tokens = CollectionsUtil.newArrayList(); - BuiltinDataType builtinDataType = DataTypeUtil.toBuiltinDataType(dataType, resolver); + BuiltinDataType builtinDataType = dataType.toBuiltinDataType(resolver); tokens.add(Keyword.of(moldManager.findDataTypeMold(builtinDataType).getName())); if (isSupport(SizedDataTypeAdapter.class, builtinDataType.getCategory()) Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultForeignKeyImportVisitor.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultForeignKeyImportVisitor.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultForeignKeyImportVisitor.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -33,8 +33,6 @@ import org.jiemamy.model.entity.TableModel; import org.jiemamy.utils.metadata.KeyMeta; import org.jiemamy.utils.model.ForeignKeyUtil; -import org.jiemamy.utils.model.RootModelUtil; -import org.jiemamy.utils.model.TableUtil; import org.jiemamy.utils.visitor.AbstractCollectionVisitor; /** @@ -60,8 +58,8 @@ public Void visit(KeyMeta keys) { Validate.notNull(keys); - TableModel constrainedTable = RootModelUtil.getEntity(rootModel, TableModel.class, keys.fkTableName); - TableModel referenceTable = RootModelUtil.getEntity(rootModel, TableModel.class, keys.pkTableName); + TableModel constrainedTable = rootModel.getEntity(TableModel.class, keys.fkTableName); + TableModel referenceTable = rootModel.getEntity(TableModel.class, keys.pkTableName); if (constrainedTable != null && referenceTable != null) { JiemamyFactory factory = rootModel.getJiemamy().getFactory(); @@ -72,8 +70,8 @@ constrainedTable.getAttributes().add(foreignKey); importedForeignKeys.put(keys.fkName, foreignKey); } - ColumnModel fkColumn = TableUtil.getColumn(constrainedTable, keys.fkColumnName); - ColumnModel pkColumn = TableUtil.getColumn(referenceTable, keys.pkColumnName); + ColumnModel fkColumn = constrainedTable.getColumn(keys.fkColumnName); + ColumnModel pkColumn = referenceTable.getColumn(keys.pkColumnName); ForeignKeyUtil.addMapping(foreignKey, fkColumn, pkColumn); if (keys.updateRule != null) { Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -65,9 +65,6 @@ import org.jiemamy.utils.CollectionsUtil; import org.jiemamy.utils.Disablable; import org.jiemamy.utils.EntityDependencyCalculator; -import org.jiemamy.utils.model.DataTypeUtil; -import org.jiemamy.utils.model.ForeignKeyUtil; -import org.jiemamy.utils.model.TableUtil; /** * {@link SqlEmitter}の標準実装クラス。 @@ -332,14 +329,13 @@ columnList.add(Separator.LEFT_PAREN); dataList.add(Separator.LEFT_PAREN); - List<ColumnModel> columns = TableUtil.getColumns(tableModel); + List<ColumnModel> columns = tableModel.findColumns(); for (ColumnModel columnModel : columns) { columnList.add(Identifier.of(columnModel.getName())); columnList.add(Separator.COMMA); ReferenceResolver referenceResolver = columnModel.getJiemamy().getReferenceResolver(); - BuiltinDataType builtinDataType = - DataTypeUtil.toBuiltinDataType(columnModel.getDataType(), referenceResolver); + BuiltinDataType builtinDataType = columnModel.getDataType().toBuiltinDataType(referenceResolver); String string = recordModel.getValues().get(factory.newReference(columnModel)); dataList.add(Literal.of(string, builtinDataType.getCategory().getLiteralType())); dataList.add(Separator.COMMA); @@ -378,8 +374,7 @@ tokens.addAll(dataTypeResolver.resolveDataType(columnModel.getDataType(), referenceResolver)); if (StringUtils.isEmpty(columnModel.getDefaultValue()) == false) { - BuiltinDataType builtinDataType = - DataTypeUtil.toBuiltinDataType(columnModel.getDataType(), referenceResolver); + BuiltinDataType builtinDataType = columnModel.getDataType().toBuiltinDataType(referenceResolver); tokens.add(Keyword.DEFAULT); tokens.add(Literal .of(columnModel.getDefaultValue(), builtinDataType.getCategory().getLiteralType())); @@ -479,7 +474,7 @@ tokens.add(Keyword.KEY); addColumnList(tokens, foreignKey.getKeyColumns(), referenceResolver); tokens.add(Keyword.REFERENCES); - EntityModel referenceEntity = ForeignKeyUtil.getReferenceEntity(foreignKey); + EntityModel referenceEntity = foreignKey.findReferencedEntity(); tokens.add(Identifier.of(referenceEntity.getName())); addColumnList(tokens, foreignKey.getReferenceColumns(), referenceResolver); Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/JiemamyFacadeImpl.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/JiemamyFacadeImpl.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/JiemamyFacadeImpl.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -83,8 +83,6 @@ import org.jiemamy.utils.EssentialStacks; import org.jiemamy.utils.model.AttributeUtil; import org.jiemamy.utils.model.EntityUtil; -import org.jiemamy.utils.model.ForeignKeyUtil; -import org.jiemamy.utils.model.RootModelUtil; import org.jiemamy.utils.model.TableUtil; /** @@ -302,14 +300,14 @@ // ローカルキーを削除する場合、そのキーを参照する外部キーも同時に削除する if (attributeModel instanceof LocalKeyConstraint) { LocalKeyConstraint localKeyConstraint = (LocalKeyConstraint) attributeModel; - TableModel definedTable = AttributeUtil.getDefinedTable(localKeyConstraint); - Collection<EntityModel> dependentEntities = EntityUtil.getDependentEntities(definedTable, false); + TableModel definedTable = localKeyConstraint.findDeclaringTable(); + Collection<EntityModel> dependentEntities = definedTable.findSubEntities(false); for (EntityModel entityModel : dependentEntities) { if (entityModel instanceof TableModel) { TableModel dependentTable = (TableModel) entityModel; - List<ForeignKey> foreignKeys = TableUtil.getAttributes(dependentTable, ForeignKey.class); + List<ForeignKey> foreignKeys = dependentTable.getAttributes(ForeignKey.class); for (ForeignKey foreignKey : foreignKeys) { - if (ForeignKeyUtil.getReferenceKeyConstraint(foreignKey) == null) { + if (foreignKey.findReferencedKeyConstraint() == null) { removeAttribute(dependentTable, foreignKey); } } @@ -320,7 +318,7 @@ // カラムを削除する場合、全てのキーに含まれる該当カラムへの参照も同時に削除する if (attributeModel instanceof ColumnModel) { ColumnModel columnModel = (ColumnModel) attributeModel; - List<KeyConstraint> keys = TableUtil.getAttributes(tableModel, KeyConstraint.class, true); + List<KeyConstraint> keys = tableModel.getAttributes(KeyConstraint.class, true); for (KeyConstraint keyConstraint : keys) { removeKeyColumn(keyConstraint, columnModel); } @@ -355,14 +353,14 @@ DomainRef domainRef = factory.newReference(domainModel); Dialect dialect; try { - dialect = RootModelUtil.getDialect(rootModel); + dialect = rootModel.findDialect(); } catch (ClassNotFoundException e) { logger.warn("Dialectのロスト", e); dialect = new GenericDialect(); } - Collection<TableModel> tableModels = RootModelUtil.getEntities(rootModel, TableModel.class); + Collection<TableModel> tableModels = rootModel.getEntities(TableModel.class); for (TableModel tableModel : tableModels) { - List<ColumnModel> columns = TableUtil.getColumns(tableModel); + List<ColumnModel> columns = tableModel.findColumns(); for (ColumnModel columnModel : columns) { if (columnModel.getDataType().equals(domainRef)) { BuiltinDataType domainDataType = domainModel.getDataType(); @@ -410,7 +408,7 @@ TableModel sourceTable = (TableModel) sourceEntity; List<ForeignKey> foreignKeys = TableUtil.getForeignKeys(sourceTable); for (ForeignKey foreignKey : foreignKeys) { - if (ForeignKeyUtil.getReferenceEntity(foreignKey) == tableModel) { + if (foreignKey.findReferencedEntity() == tableModel) { removeAttribute(sourceTable, foreignKey); } } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/entity/TableModelImpl.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/entity/TableModelImpl.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/entity/TableModelImpl.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -57,6 +57,20 @@ super(jiemamy, id); } + public List<ColumnModel> findColumns() { + // TODO インライン展開 + return TableUtil.getColumns(this); + } + + public List<ForeignKey> findForeignKeys() { + return getAttributes(ForeignKey.class); + } + + public PrimaryKey findPrimaryKey() { + // TODO インライン展開 + return TableUtil.getPrimaryKey(this); + } + public <T extends AttributeModel>T getAttribute(Class<T> clazz) { // TODO インライン展開 return TableUtil.getAttribute(this, clazz); @@ -77,30 +91,21 @@ return TableUtil.getAttributes(this, clazz); } - public ColumnModel getColumn(String columnName) { + public <T extends AttributeModel>List<T> getAttributes(Class<T> clazz, boolean columnAttr) { // TODO インライン展開 - return TableUtil.getColumn(this, columnName); + return TableUtil.getAttributes(this, clazz, columnAttr); } - public List<ColumnModel> findColumns() { + public ColumnModel getColumn(String columnName) { // TODO インライン展開 - return TableUtil.getColumns(this); + return TableUtil.getColumn(this, columnName); } - public List<ForeignKey> findForeignKeys() { - return getAttributes(ForeignKey.class); - } - public List<IndexModel> getIndexes() { assert indexes != null; return indexes; } - public PrimaryKey findPrimaryKey() { - // TODO インライン展開 - return TableUtil.getPrimaryKey(this); - } - /** * 属性のリストを設定する。 * 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-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/DefaultSqlEmitterTest.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -30,7 +30,6 @@ import org.jiemamy.internal.test.TestModelBuilders; import org.jiemamy.internal.test.TestModelsTestBase; import org.jiemamy.model.sql.SqlStatement; -import org.jiemamy.utils.model.RootModelUtil; /** * {@link DefaultSqlEmitter}のテストクラス。 @@ -50,7 +49,7 @@ @Override public void doTest(TestModelBuilders entry) throws Exception { Jiemamy jiemamy = entry.getBuiltModel(); - Dialect dialect = RootModelUtil.getDialect(jiemamy.getFactory().getRootModel()); + Dialect dialect = jiemamy.getFactory().getRootModel().findDialect(); SqlEmitter sqlEmitter = new DefaultSqlEmitter(new DefaultDataTypeResolver(dialect.getMoldManager())); List<SqlStatement> statements = sqlEmitter.emit(jiemamy.getFactory().getRootModel(), new MockEmitConfig()); Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/JiemamyFacadeImplTest.java =================================================================== --- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/JiemamyFacadeImplTest.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/internal/JiemamyFacadeImplTest.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -43,7 +43,6 @@ import org.jiemamy.model.attribute.ColumnRef; import org.jiemamy.model.attribute.constraint.PrimaryKey; import org.jiemamy.model.entity.TableModel; -import org.jiemamy.utils.model.TableUtil; /** * {@link JiemamyFacadeImpl}のテストクラス。 @@ -94,32 +93,32 @@ ColumnModel columnModel1 = factory.newModel(ColumnModel.class); ColumnModel columnModel2 = factory.newModel(ColumnModel.class); ColumnModel columnModel3 = factory.newModel(ColumnModel.class); - assertThat(TableUtil.getColumns(tableModel).size(), is(0)); + assertThat(tableModel.findColumns().size(), is(0)); SavePoint save2 = coreFacade.save(); coreFacade.addAttribute(tableModel, columnModel1); - assertThat(TableUtil.getColumns(tableModel).size(), is(1)); - assertThat(TableUtil.getColumns(tableModel).get(0), is(columnModel1)); + assertThat(tableModel.findColumns().size(), is(1)); + assertThat(tableModel.findColumns().get(0), is(columnModel1)); SavePoint save3 = coreFacade.save(); coreFacade.addAttribute(tableModel, columnModel2); - assertThat(TableUtil.getColumns(tableModel).size(), is(2)); - assertThat(TableUtil.getColumns(tableModel).get(0), is(columnModel1)); - assertThat(TableUtil.getColumns(tableModel).get(1), is(columnModel2)); + assertThat(tableModel.findColumns().size(), is(2)); + assertThat(tableModel.findColumns().get(0), is(columnModel1)); + assertThat(tableModel.findColumns().get(1), is(columnModel2)); coreFacade.rollback(save3); - assertThat(TableUtil.getColumns(tableModel).size(), is(1)); - assertThat(TableUtil.getColumns(tableModel).get(0), is(columnModel1)); + assertThat(tableModel.findColumns().size(), is(1)); + assertThat(tableModel.findColumns().get(0), is(columnModel1)); coreFacade.addAttribute(tableModel, columnModel2); coreFacade.addAttribute(tableModel, columnModel3); - assertThat(TableUtil.getColumns(tableModel).size(), is(3)); - assertThat(TableUtil.getColumns(tableModel).get(0), is(columnModel1)); - assertThat(TableUtil.getColumns(tableModel).get(1), is(columnModel2)); - assertThat(TableUtil.getColumns(tableModel).get(2), is(columnModel3)); + assertThat(tableModel.findColumns().size(), is(3)); + assertThat(tableModel.findColumns().get(0), is(columnModel1)); + assertThat(tableModel.findColumns().get(1), is(columnModel2)); + assertThat(tableModel.findColumns().get(2), is(columnModel3)); coreFacade.rollback(save2); - assertThat(TableUtil.getColumns(tableModel).size(), is(0)); + assertThat(tableModel.findColumns().size(), is(0)); assertThat(factory.getRootModel().getEntities().size(), is(1)); coreFacade.rollback(save1); assertThat(factory.getRootModel().getEntities().isEmpty(), is(true)); 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-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/model/RootModelUtilTest.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -33,8 +33,8 @@ import org.jiemamy.dialect.generic.GenericDialect; import org.jiemamy.internal.builder.TableBuilderImpl; import org.jiemamy.internal.builder.ViewBuilderImpl; +import org.jiemamy.internal.test.CoreTestModelBuilder; import org.jiemamy.internal.test.ReflectionDialectProvider; -import org.jiemamy.internal.test.CoreTestModelBuilder; import org.jiemamy.model.RootModel; import org.jiemamy.model.entity.TableModel; import org.jiemamy.model.entity.ViewModel; @@ -99,8 +99,8 @@ rootModel.getEntities().add(new ViewBuilderImpl(factory, "view1").build()); rootModel.getEntities().add(new ViewBuilderImpl(factory, "view2").build()); - assertThat(RootModelUtil.getEntities(rootModel, TableModel.class).size(), is(3)); - assertThat(RootModelUtil.getEntities(rootModel, ViewModel.class).size(), is(2)); + assertThat(rootModel.getEntities(TableModel.class).size(), is(3)); + assertThat(rootModel.getEntities(ViewModel.class).size(), is(2)); } /** Modified: artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/JiemamyViewFacadeImpl.java =================================================================== --- artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/JiemamyViewFacadeImpl.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/JiemamyViewFacadeImpl.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -169,7 +169,7 @@ LocalKeyConstraint key = TableUtil.getKey(targetTable); - List<ColumnModel> sourceColumns = TableUtil.getColumns(sourceTable); + List<ColumnModel> sourceColumns = sourceTable.findColumns(); for (ColumnRef columnRef : key.getKeyColumns()) { ColumnModel keyColumn = sourceColumns.get(0); Modified: artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/connection/ConnectionAdapterImpl.java =================================================================== --- artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/connection/ConnectionAdapterImpl.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/connection/ConnectionAdapterImpl.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -29,7 +29,6 @@ import org.jiemamy.model.connection.ConnectionAdapter; import org.jiemamy.model.entity.TableModel; import org.jiemamy.model.node.NodeAdapter; -import org.jiemamy.utils.model.AttributeUtil; /** * コネクション(FKと継承等)の抽象クラス。 @@ -59,7 +58,7 @@ } ColumnRef columnRef = keyColumns.get(0); ColumnModel columnModel = columnRef.getJiemamy().getReferenceResolver().resolve(columnRef); - TableModel definedTable = AttributeUtil.getDefinedTable(columnModel); + TableModel definedTable = columnModel.findDeclaringTable(); if (definedTable == null) { return null; } @@ -73,7 +72,7 @@ } ColumnRef columnRef = referenceColumns.get(0); ColumnModel columnModel = columnRef.getJiemamy().getReferenceResolver().resolve(columnRef); - TableModel definedTable = AttributeUtil.getDefinedTable(columnModel); + TableModel definedTable = columnModel.findDeclaringTable(); if (definedTable == null) { return null; } Modified: artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/node/NodeAdapterImpl.java =================================================================== --- artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/node/NodeAdapterImpl.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-view/src/main/java/org/jiemamy/internal/model/node/NodeAdapterImpl.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -30,8 +30,6 @@ import org.jiemamy.model.entity.TableModel; import org.jiemamy.model.node.NodeAdapter; import org.jiemamy.utils.CollectionsUtil; -import org.jiemamy.utils.model.EntityUtil; -import org.jiemamy.utils.model.ForeignKeyUtil; import org.jiemamy.utils.model.TableUtil; /** @@ -87,13 +85,13 @@ List<ConnectionAdapter> result = CollectionsUtil.newArrayList(); if (coreEntityModel instanceof TableModel) { TableModel targetTable = (TableModel) coreEntityModel; - Collection<EntityModel> sourceEntities = EntityUtil.getDependentEntities(targetTable, false); + Collection<EntityModel> sourceEntities = targetTable.findSubEntities(false); for (EntityModel sourceEntity : sourceEntities) { if (sourceEntity instanceof TableModel) { TableModel sourceTable = (TableModel) sourceEntity; List<ForeignKey> foreignKeys = TableUtil.getForeignKeys(sourceTable); for (ForeignKey foreignKey : foreignKeys) { - if (ForeignKeyUtil.getReferenceEntity(foreignKey) == targetTable) { + if (foreignKey.findReferencedEntity() == targetTable) { result.add(foreignKey.getAdapter(ConnectionAdapter.class)); } } Modified: artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/JiemamyViewFacadeImplTest.java =================================================================== --- artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/JiemamyViewFacadeImplTest.java 2009-04-30 11:36:12 UTC (rev 3340) +++ artemis/trunk/jiemamy-view/src/test/java/org/jiemamy/internal/JiemamyViewFacadeImplTest.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -130,8 +130,7 @@ assertThat(foreignKeys.get(0), is(foreignKey)); assertThat(foreignKey.getKeyColumns().size(), is(1)); assertThat(foreignKey.getReferenceColumns().size(), is(1)); - assertThat(referenceResolver.resolve(foreignKey.getKeyColumns().get(0)), is(TableUtil.getColumns(tables[1]) - .get(0))); + assertThat(referenceResolver.resolve(foreignKey.getKeyColumns().get(0)), is(tables[1].findColumns().get(0))); viewFacade.rollback(save); foreignKeys = TableUtil.getForeignKeys(tables[1]); @@ -261,7 +260,7 @@ assertThat(rootModel.getEntities().contains(tableModel1), is(true)); assertThat(diagramPresentationModel.getNodeProfiles().get(nodeAdapter1), is(nodeProfile1)); assertThat(nodeProfile1.getBoundary(), is(rectangle1)); - assertThat(TableUtil.getColumns(tableModel1).size(), is(3)); + assertThat(tableModel1.findColumns().size(), is(3)); TableModel tableModel2 = factory.newModel(TableModel.class); viewFacade.addEntity(tableModel2); @@ -282,7 +281,7 @@ assertThat(rootModel.getEntities().contains(tableModel1), is(true)); assertThat(diagramPresentationModel.getNodeProfiles().get(nodeAdapter1), is(nodeProfile1)); assertThat(nodeProfile1.getBoundary(), is(rectangle1)); - assertThat(TableUtil.getColumns(tableModel2).size(), is(2)); + assertThat(tableModel2.findColumns().size(), is(2)); TableModel tableModel3 = factory.newModel(TableModel.class); viewFacade.addEntity(tableModel3); @@ -303,7 +302,7 @@ assertThat(rootModel.getEntities().contains(tableModel1), is(true)); assertThat(diagramPresentationModel.getNodeProfiles().get(nodeAdapter1), is(nodeProfile1)); assertThat(nodeProfile1.getBoundary(), is(rectangle1)); - assertThat(TableUtil.getColumns(tableModel3).size(), is(2)); + assertThat(tableModel3.findColumns().size(), is(2)); return new TableModel[] { tableModel1, Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java 2009-04-30 11:36:12 UTC (rev 3340) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -259,9 +259,9 @@ } /** - * TODO for daisuke + * コンテキストが関与するXML名前空間の配列を取得する。 * - * @return + * @return コンテキストが関与するXML名前空間の配列 * @since 0.2 */ public JiemamyNamespace[] getNamespaces() { Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/JiemamyImplementation.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/JiemamyImplementation.java 2009-04-30 11:36:12 UTC (rev 3340) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/JiemamyImplementation.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -60,9 +60,9 @@ JiemamyFactory getFactory(Jiemamy jiemamy); /** - * TODO for daisuke + * Jiemamy実装が関与するXML名前空間の配列を取得する。 * - * @return + * @return Jiemamy実装が関与するXML名前空間の配列 * @since 0.2 */ JiemamyNamespace[] getNamespaces(); Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/entity/TableModel.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/entity/TableModel.java 2009-04-30 11:36:12 UTC (rev 3340) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/entity/TableModel.java 2009-04-30 12:03:35 UTC (rev 3341) @@ -36,6 +36,41 @@ public interface TableModel extends EntityModel { /** + * カラムのリストを取得する。 + * + * <p>返される{@link List}は他に影響を及ぼさない独立したインスタンスである。</p> + * + * @return カラムのリスト + * @throws IllegalArgumentException 引数に{@code null}を与えた場合 + * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 + */ + List<ColumnModel> findColumns(); + + /** + * 外部キー制約のリストを取得する。 + * + * <p>返される{@link List}は他に影響を及ぼさない独立したインスタンスである。</p> + * + * @return 外部キー制約のリスト + * @throws IllegalArgumentException 引数に{@code null}を与えた場合 + * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 + */ + List<ForeignKey> findForeignKeys(); + + /** + * このテーブルの主キーを取得する。 + * + * <p>テーブルに対して設定された主キーだけではなく、カラムに対して設定された主キーも検索対象となる。</p> + * + * @return 主キー + * @throws TooManyElementsException 複数の主キーが見つかった場合 + * @throws ElementNotFoundException 主キーが存在しない場合 + * @throws IllegalArgumentException 引数に{@code null}を与えた場合 + * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 + */ + PrimaryKey findPrimaryKey(); + + /** * 指定した型を持つ属性を取得する。 * * @param <T> 属性の型 @@ -87,38 +122,30 @@ <T extends AttributeModel>List<T> getAttributes(Class<T> clazz); /** - * 指定した名前を持つカラムを取得する。 + * 指定した型を持つ属性のリストを取得する。 * - * @param columnName カラム名 - * @return 見つかったカラム - * @throws TooManyElementsException 同名のカラムが複数見つかった場合 - * @throws ElementNotFoundException カラムが見つからなかった場合 - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 - */ - ColumnModel getColumn(String columnName); - - /** - * カラムのリストを取得する。 - * * <p>返される{@link List}は他に影響を及ぼさない独立したインスタンスである。</p> * - * @return カラムのリスト + * @param <T> 属性の型 + * @param clazz 検索する型 + * @param columnAttr カラム属性も検索対象とする場合は{@code true}、そうでない場合は{@code false} + * @return 属性のリスト * @throws IllegalArgumentException 引数に{@code null}を与えた場合 * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 */ - List<ColumnModel> findColumns(); + <T extends AttributeModel>List<T> getAttributes(Class<T> clazz, boolean columnAttr); /** - * 外部キー制約のリストを取得する。 + * 指定した名前を持つカラムを取得する。 * - * <p>返される{@link List}は他に影響を及ぼさない独立したインスタンスである。</p> - * - * @return 外部キー制約のリスト + * @param columnName カラム名 + * @return 見つかったカラム + * @throws TooManyElementsException 同名のカラムが複数見つかった場合 + * @throws ElementNotFoundException カラムが見つからなかった場合 * @throws IllegalArgumentException 引数に{@code null}を与えた場合 * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 */ - List<ForeignKey> findForeignKeys(); + ColumnModel getColumn(String columnName); /** * インデックスのリストを取得する。 @@ -130,17 +157,4 @@ * @since 0.2 */ List<IndexModel> getIndexes(); - - /** - * このテーブルの主キーを取得する。 - * - * <p>テーブルに対して設定された主キーだけではなく、カラムに対して設定された主キーも検索対象となる。</p> - * - * @return 主キー - * @throws TooManyElementsException 複数の主キーが見つかった場合 - * @throws ElementNotFoundException 主キーが存在しない場合 - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - * @throws UnsupportedOperationException 実装がこのメソッドをサポートしない場合 - */ - PrimaryKey findPrimaryKey(); }