svnno****@sourc*****
svnno****@sourc*****
2009年 4月 10日 (金) 19:25:42 JST
Revision: 3206 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3206 Author: daisuke_m Date: 2009-04-10 19:25:41 +0900 (Fri, 10 Apr 2009) Log Message: ----------- maven-overview-pluginを使ってみる。 / Dialect#getName()を追加。 / Severity.ordinal()の使用を中止。 / FileExportConfigをspecへ移動。 / javadoc / refactor Modified Paths: -------------- artemis/trunk/jiemamy-artemis/pom.xml artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/AbstractFileExportConfig.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExportConfig.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/generic/GenericDialect.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/ValidatorUtil.java artemis/trunk/jiemamy-dialect-mysql/src/main/java/org/jiemamy/dialect/mysql/MySqlDialect.java artemis/trunk/jiemamy-dialect-oracle/src/main/java/org/jiemamy/dialect/oracle/OracleDialect.java artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java artemis/trunk/jiemamy-dialect-sql99/src/main/java/org/jiemamy/dialect/sql99/Sql99Dialect.java hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/ForEachUtil.java leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/metadata/TypeSafeDatabaseMetaData.java leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ModelUtil.java leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ReflectionDialectProvider.java zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/dialect/Dialect.java zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/validator/Problem.java zeus/trunk/jiemamy-zeus/pom.xml Added Paths: ----------- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/composer/FileExportConfig.java Removed Paths: ------------- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/FileExportConfig.java -------------- next part -------------- Modified: artemis/trunk/jiemamy-artemis/pom.xml =================================================================== --- artemis/trunk/jiemamy-artemis/pom.xml 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-artemis/pom.xml 2009-04-10 10:25:41 UTC (rev 3206) @@ -132,6 +132,11 @@ <outputEncoding>UTF-8</outputEncoding> </configuration> </plugin> + <plugin> + <groupId>com.googlecode.maven-overview-plugin</groupId> + <artifactId>maven-overview-plugin</artifactId> + <version>1.3</version> + </plugin> </plugins> </build> <repositories> @@ -172,9 +177,21 @@ <enabled>true</enabled> </releases> </pluginRepository> + <pluginRepository> + <id>overview plugin</id> + <url>https://kungfoo-m2.googlecode.com/svn/release-repo</url> + <releases> + <enabled>true</enabled> + </releases> + </pluginRepository> </pluginRepositories> <reporting> <plugins> + <plugin> + <groupId>com.googlecode.maven-overview-plugin</groupId> + <artifactId>maven-overview-plugin</artifactId> + <version>1.3</version> + </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/AbstractFileExportConfig.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/AbstractFileExportConfig.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/AbstractFileExportConfig.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -23,6 +23,7 @@ import org.apache.commons.lang.Validate; import org.jiemamy.composer.Exporter; +import org.jiemamy.composer.FileExportConfig; /** * ファイルに対する{@link Exporter}に関する設定情報保持クラスの骨格実装。 Deleted: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/FileExportConfig.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/FileExportConfig.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/FileExportConfig.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -1,47 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on 2009/02/25 - * - * 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.composer.exporter; - -import java.io.File; - -import org.jiemamy.composer.ExportConfig; -import org.jiemamy.composer.Exporter; - -/** - * ファイルにを出力する{@link Exporter}に関する設定情報インターフェイス。 - * - * @author daisuke - */ -public interface FileExportConfig extends ExportConfig { - - /** - * 出力ファイルを取得する。 - * - * @return 出力ファイル. 未設定の場合は{@code null} - */ - File getOutputFile(); - - /** - * 出力ファイルが既に存在した場合、上書きするかどうか調べる。 - * - * @return 上書きする場合は{@code true}、そうでない場合は{@code false} - */ - boolean isOverwrite(); - -} Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExportConfig.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExportConfig.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/composer/exporter/SqlExportConfig.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -18,6 +18,7 @@ */ package org.jiemamy.composer.exporter; +import org.jiemamy.composer.FileExportConfig; import org.jiemamy.dialect.EmitConfig; /** Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/generic/GenericDialect.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/generic/GenericDialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/generic/GenericDialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -134,6 +134,10 @@ return moldManager; } + public String getName() { + return "Generic Database"; + } + public Validator getValidator() { return new AllValidator(); } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultEntityImportVisitor.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -153,7 +153,6 @@ if (StringUtils.isEmpty(tableMeta.remarks) == false) { result.setDescription(tableMeta.remarks); } - // UNDONE 制約などその他情報なども return result; } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/ValidatorUtil.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/ValidatorUtil.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/ValidatorUtil.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -21,19 +21,27 @@ import java.util.Collection; import org.jiemamy.validator.Problem; +import org.jiemamy.validator.Validator; import org.jiemamy.validator.Problem.Severity; /** - * TODO for daisuke + * {@link Validator}用ユーティリティクラス。 * * @author daisuke */ public final class ValidatorUtil { + /** + * 指定した問題の重要度<b>以上</b>(指定した問題の重要度を含む)の問題数を取得する。 + * + * @param problems 問題の集合 + * @param severity 問題の重要度 + * @return 指定した問題の重要度<b>以上</b>の問題数 + */ public static int sizeOf(Collection<Problem> problems, Severity severity) { int count = 0; for (Problem problem : problems) { - if (problem.getSeverity().ordinal() <= severity.ordinal()) { + if (problem.getSeverity().getValue() >= severity.getValue()) { count++; } } Modified: artemis/trunk/jiemamy-dialect-mysql/src/main/java/org/jiemamy/dialect/mysql/MySqlDialect.java =================================================================== --- artemis/trunk/jiemamy-dialect-mysql/src/main/java/org/jiemamy/dialect/mysql/MySqlDialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-dialect-mysql/src/main/java/org/jiemamy/dialect/mysql/MySqlDialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -142,6 +142,10 @@ return "jdbc:mysql://localhost:3306/"; } + public String getName() { + return "MySQL 5.0"; + } + @Override public Validator getValidator() { CompositeValidator validator = (CompositeValidator) super.getValidator(); Modified: artemis/trunk/jiemamy-dialect-oracle/src/main/java/org/jiemamy/dialect/oracle/OracleDialect.java =================================================================== --- artemis/trunk/jiemamy-dialect-oracle/src/main/java/org/jiemamy/dialect/oracle/OracleDialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-dialect-oracle/src/main/java/org/jiemamy/dialect/oracle/OracleDialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -54,4 +54,8 @@ public OracleDialect() { super(new DefaultDialectInitializer(new DefaultMoldManager(typeList))); } + + public String getName() { + return "Oracle 10g"; + } } Modified: artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java =================================================================== --- artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-dialect-postgresql/src/main/java/org/jiemamy/dialect/postgresql/PostgresqlDialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -124,6 +124,10 @@ return "jdbc:postgresql://localhost:5432/"; } + public String getName() { + return "PostgreSQL 8.1"; + } + @Override public Validator getValidator() { CompositeValidator validator = (CompositeValidator) super.getValidator(); Modified: artemis/trunk/jiemamy-dialect-sql99/src/main/java/org/jiemamy/dialect/sql99/Sql99Dialect.java =================================================================== --- artemis/trunk/jiemamy-dialect-sql99/src/main/java/org/jiemamy/dialect/sql99/Sql99Dialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ artemis/trunk/jiemamy-dialect-sql99/src/main/java/org/jiemamy/dialect/sql99/Sql99Dialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -98,6 +98,10 @@ return "jdbc:"; } + public String getName() { + return "SQL99 Standard"; + } + @Override public Validator getValidator() { CompositeValidator validator = (CompositeValidator) super.getValidator(); Modified: hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java =================================================================== --- hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java 2009-04-09 08:50:45 UTC (rev 3205) +++ hestia/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/dialog/root/RootEditDialogDataSetTab.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -91,7 +91,7 @@ */ public RootEditDialogDataSetTab(TabFolder parentTabFolder, int style, RootModel rootModel, JiemamyFacade jiemamyFacade) { - super(parentTabFolder, style, "データセット"); // RESOURCE + super(parentTabFolder, style, "データセット(&T)"); // RESOURCE this.rootModel = rootModel; this.jiemamyFacade = jiemamyFacade; Modified: leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/ForEachUtil.java =================================================================== --- leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/ForEachUtil.java 2009-04-09 08:50:45 UTC (rev 3205) +++ leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/ForEachUtil.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -109,15 +109,15 @@ } /** - * TODO for daisuke + * {@link TypeSafeResultSet}を処理するビジターアクセプタメソッド。 * - * @param <R> - * @param <X> - * @param target - * @param visitor - * @return - * @throws SQLException - * @throws X + * @param <R> 戻り値の型 + * @param <X> visitメソッドが投げる可能性のある例外 + * @param target 処理対象TypeSafeResultSet + * @param visitor ビジター + * @return accept結果 + * @throws SQLException SQLの実行に失敗した場合 + * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ public static <T, R, X extends Exception>R accept(TypeSafeResultSet<T> target, TypeSafeResultSetVisitor<T, R, X> visitor) throws SQLException, X { Modified: leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/metadata/TypeSafeDatabaseMetaData.java =================================================================== --- leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/metadata/TypeSafeDatabaseMetaData.java 2009-04-09 08:50:45 UTC (rev 3205) +++ leto/jiemamy-commons/trunk/src/main/java/org/jiemamy/utils/metadata/TypeSafeDatabaseMetaData.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -84,8 +84,8 @@ * @return 属性情報 * @throws SQLException SQLの実行に失敗した場合 */ - public TypeSafeResultSet<AttributesMeta> getAttributes(String catalog, String schemaPattern, String typeNamePattern, - String attributeNamePattern) throws SQLException { + public TypeSafeResultSet<AttributesMeta> getAttributes(String catalog, String schemaPattern, + String typeNamePattern, String attributeNamePattern) throws SQLException { ResultSet attributes = meta.getAttributes(catalog, schemaPattern, typeNamePattern, attributeNamePattern); return new TypeSafeResultSet<AttributesMeta>(attributes, AttributesMeta.class); } @@ -164,8 +164,8 @@ * @return キー情報 * @throws SQLException SQLの実行に失敗した場合 */ - public TypeSafeResultSet<KeyMeta> getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, - String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException { + public TypeSafeResultSet<KeyMeta> getCrossReference(String primaryCatalog, String primarySchema, + String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException { ResultSet crossReference = meta.getCrossReference(primaryCatalog, primarySchema, primaryTable, foreignCatalog, foreignSchema, foreignTable); @@ -258,8 +258,8 @@ * @return ストアドプロシージャ情報 * @throws SQLException SQLの実行に失敗した場合 */ - public TypeSafeResultSet<ProcedureMeta> getProcedures(String catalog, String schemaPattern, String procedureNamePattern) - throws SQLException { + public TypeSafeResultSet<ProcedureMeta> getProcedures(String catalog, String schemaPattern, + String procedureNamePattern) throws SQLException { ResultSet procedures = meta.getProcedures(catalog, schemaPattern, procedureNamePattern); return new TypeSafeResultSet<ProcedureMeta>(procedures, ProcedureMeta.class); } @@ -284,8 +284,8 @@ * @return テーブル階層情報 * @throws SQLException SQLの実行に失敗した場合 */ - public TypeSafeResultSet<SuperTableMeta> getSuperTables(String catalog, String schemaPattern, String tableNamePattern) - throws SQLException { + public TypeSafeResultSet<SuperTableMeta> getSuperTables(String catalog, String schemaPattern, + String tableNamePattern) throws SQLException { ResultSet superTables = meta.getSuperTables(catalog, schemaPattern, tableNamePattern); return new TypeSafeResultSet<SuperTableMeta>(superTables, SuperTableMeta.class); } Modified: leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ModelUtil.java =================================================================== --- leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ModelUtil.java 2009-04-09 08:50:45 UTC (rev 3205) +++ leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ModelUtil.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -18,30 +18,19 @@ */ package org.jiemamy.internal.test; -import java.util.List; - import org.apache.commons.lang.Validate; import org.jiemamy.Jiemamy; import org.jiemamy.JiemamyFactory; import org.jiemamy.dialect.BuiltinDataTypeMold; import org.jiemamy.dialect.Dialect; -import org.jiemamy.exception.ElementNotFoundException; -import org.jiemamy.exception.TooManyElementsException; import org.jiemamy.exception.UnexpectedConditionError; import org.jiemamy.model.RootModel; -import org.jiemamy.model.attribute.AttributeModel; import org.jiemamy.model.attribute.ColumnModel; import org.jiemamy.model.attribute.ColumnRef; -import org.jiemamy.model.attribute.constraint.ForeignKey; -import org.jiemamy.model.attribute.constraint.PrimaryKey; -import org.jiemamy.model.attribute.constraint.UniqueKey; import org.jiemamy.model.dataset.RecordModel; import org.jiemamy.model.datatype.BuiltinDataType; import org.jiemamy.model.datatype.DataTypeCategory; -import org.jiemamy.model.entity.EntityModel; -import org.jiemamy.model.entity.TableModel; -import org.jiemamy.utils.CollectionsUtil; /** * TODO for daisuke @@ -71,173 +60,6 @@ } } - /** - * 指定した型を持つ属性を取得する。 - * - * @param <T> 属性の型 - * @param tableModel 対象のテーブル - * @param clazz 属性の型 - * @param columnAttr カラム属性も検索対象とする場合は{@code true}、そうでない場合は{@code false} - * @return 属性 - * @throws TooManyElementsException 複数の属性が見つかった場合 - * @throws ElementNotFoundException 属性が見つからなかった場合 - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static <T extends AttributeModel>T getAttribute(TableModel tableModel, Class<T> clazz, boolean columnAttr) { - List<T> attributes = getAttributes(tableModel, clazz, columnAttr); - if (attributes.size() == 0) { - throw new ElementNotFoundException(tableModel, clazz); - } else if (attributes.size() > 1) { - throw new TooManyElementsException(tableModel, clazz, attributes); - } - return attributes.get(0); - } - - /** - * 指定した型を持つ属性のリストを取得する。 - * - * @param <T> 属性の型 - * @param tableModel 対象のテーブル - * @param clazz 検索する型 - * @return 属性のリスト - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static <T extends AttributeModel>List<T> getAttributes(TableModel tableModel, Class<T> clazz) { - return getAttributes(tableModel, clazz, false); - } - - /** - * 属性のうち、指定した型を持つもののリストを取得する。 - * - * @param <T> 対象属性の型 - * @param tableModel 対象のテーブル - * @param clazz 対象属性の型 - * @param columnAttr カラムに付随するモデルも対象とする場合は{@code true}、そうでない場合は{@code false} - * @return 属性のリスト - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static <T extends AttributeModel>List<T> getAttributes(TableModel tableModel, Class<T> clazz, boolean columnAttr) { - Validate.notNull(tableModel); - Validate.notNull(clazz); - - List<T> result = CollectionsUtil.newArrayList(); - for (AttributeModel attribute : tableModel.getAttributes()) { - if (clazz.isAssignableFrom(attribute.getClass())) { - result.add(clazz.cast(attribute)); - } - if (columnAttr && attribute instanceof ColumnModel) { - ColumnModel columnModel = (ColumnModel) attribute; - UniqueKey uniqueKey = columnModel.getUniqueKey(); - if (uniqueKey != null && clazz.isAssignableFrom(uniqueKey.getClass())) { - result.add(clazz.cast(uniqueKey)); - } - PrimaryKey primaryKey = columnModel.getPrimaryKey(); - if (primaryKey != null && clazz.isAssignableFrom(primaryKey.getClass())) { - result.add(clazz.cast(primaryKey)); - } - // column chek と not null は attributeじゃないので処理しない - } - } - return result; - } - - /** - * テーブルから、指定した名前を持つカラムを取得する。 - * - * @param tableModel 検索対象のテーブル - * @param columnName カラム名 - * @return 見つかったカラム - * @throws TooManyElementsException 同名のカラムが複数見つかった場合 - * @throws ElementNotFoundException カラムが見つからなかった場合 - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static ColumnModel getColumn(TableModel tableModel, String columnName) { - Validate.notNull(tableModel); - Validate.notNull(columnName); - - List<ColumnModel> columns = CollectionsUtil.newArrayList(); - for (ColumnModel columnModel : getAttributes(tableModel, ColumnModel.class)) { - if (columnName.equals(columnModel.getName())) { - columns.add(columnModel); - } - } - if (columns.size() == 0) { - throw new ElementNotFoundException(tableModel, columnName); - } else if (columns.size() > 1) { - throw new TooManyElementsException(tableModel, columnName, columns); - } - return columns.get(0); - } - - /** - * カラムのリストを取得する。 - * - * @param tableModel 対象のテーブル - * @return カラムのリスト - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static List<ColumnModel> getColumns(TableModel tableModel) { - return getAttributes(tableModel, ColumnModel.class); - } - - /** - * 指定した名前を持つエンティティを取得する。 - * - * <p>エンティティ名の大文字・小文字は区別されない。</p> - * - * @param <T> エンティティの種類を表すクラス - * @param rootModel 操作対象{@link RootModel} - * @param clazz エンティティの種類を表すクラス. {@code null}の場合、エンティティの種類を限定しないことを表す - * @param entityName エンティティ名 - * @return 見つかったエンティティ - * @throws TooManyElementsException 同名のエンティティが複数見つかった場合 - * @throws ElementNotFoundException エンティティが見つからなかった場合 - * @throws IllegalArgumentException 引数rootModel, entityNameに{@code null}を与えた場合 - */ - @SuppressWarnings("unchecked") - static <T extends EntityModel>T getEntity(RootModel rootModel, Class<T> clazz, String entityName) { - Validate.notNull(rootModel); - Validate.notNull(entityName); - - List<T> entities = CollectionsUtil.newArrayList(); - for (EntityModel entityModel : rootModel.getEntities()) { - if (entityName.equalsIgnoreCase(entityModel.getName()) - && (clazz == null || clazz.isAssignableFrom(entityModel.getClass()))) { - entities.add((T) entityModel); - } - } - if (entities.size() == 0) { - throw new ElementNotFoundException(rootModel, entityName); - } else if (entities.size() > 1) { - throw new TooManyElementsException(rootModel, entityName, entities); - } - return entities.get(0); - } - - /** - * 外部キー制約のリストを取得する。 - * - * @param tableModel 対象のテーブル - * @return 外部キー制約のリスト - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static List<ForeignKey> getForeignKeys(TableModel tableModel) { - return getAttributes(tableModel, ForeignKey.class); - } - - /** - * 主キーを取得する。 - * - * @param tableModel 対象のテーブル - * @return 主キー - * @throws TooManyElementsException 複数の主キーが見つかった場合 - * @throws ElementNotFoundException 主キーが存在しない場合 - * @throws IllegalArgumentException 引数に{@code null}を与えた場合 - */ - static PrimaryKey getPrimaryKey(TableModel tableModel) { - return getAttribute(tableModel, PrimaryKey.class, true); - } - private ModelUtil() { throw new UnexpectedConditionError("不到達ポイント"); } Modified: leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ReflectionDialectProvider.java =================================================================== --- leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ReflectionDialectProvider.java 2009-04-09 08:50:45 UTC (rev 3205) +++ leto/jiemamy-test-helper/trunk/src/main/java/org/jiemamy/internal/test/ReflectionDialectProvider.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -41,6 +41,7 @@ classLoader = new URLClassLoader(new URL[] { new File("../jiemamy-dialect-mysql/target/classes").toURL(), new File("../jiemamy-dialect-postgresql/target/classes").toURL(), + new File("../jiemamy-dialect-oracle/target/classes").toURL(), new File("../jiemamy-dialect-sql99/target/classes").toURL() }); } catch (MalformedURLException e) { Added: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/composer/FileExportConfig.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/composer/FileExportConfig.java (rev 0) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/composer/FileExportConfig.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -0,0 +1,45 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on 2009/02/25 + * + * 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.composer; + +import java.io.File; + + +/** + * ファイルにを出力する{@link Exporter}に関する設定情報インターフェイス。 + * + * @author daisuke + */ +public interface FileExportConfig extends ExportConfig { + + /** + * 出力ファイルを取得する。 + * + * @return 出力ファイル. 未設定の場合は{@code null} + */ + File getOutputFile(); + + /** + * 出力ファイルが既に存在した場合、上書きするかどうか調べる。 + * + * @return 上書きする場合は{@code true}、そうでない場合は{@code false} + */ + boolean isOverwrite(); + +} Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/dialect/Dialect.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/dialect/Dialect.java 2009-04-09 08:50:45 UTC (rev 3205) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/dialect/Dialect.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -126,6 +126,14 @@ MoldManager getMoldManager(); /** + * SQL方言名を取得する。 + * + * @return SQL方言名 + * @since 0.2 + */ + String getName(); + + /** * モデルのバリデータを取得する。 * * <p>{@code null}を返してはならない。</p> Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/validator/Problem.java =================================================================== --- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/validator/Problem.java 2009-04-09 08:50:45 UTC (rev 3205) +++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/validator/Problem.java 2009-04-10 10:25:41 UTC (rev 3206) @@ -103,18 +103,36 @@ public enum Severity { /** 致命的なエラー: 正常にモデルをパースできない・SQLに変換できない状態 */ - FATAL, + FATAL(5), /** 一般的なエラー: このままSQL化してもDBがsyntax error等を出すであろう状態 */ - ERROR, + ERROR(4), /** 警告: SQL化してDBに適用可能だが、RDB理論的に望ましくない状態 */ - WARN, + WARN(3), /** 通知: RDB理論的に問題はないけど実務的にアレだよね系の状態 */ - NOTICE, + NOTICE(2), /** 情報: 問題でなないが、何かしらの情報を表現したい場合 */ - INFO + INFO(1); + + /** 重要度を数値化した値 */ + private final int value; + + + Severity(int value) { + this.value = value; + } + + /** + * 重要度を数値化した値を取得する。 + * + * @return 重要度を数値化した値 + * @since 0.2 + */ + public int getValue() { + return value; + } } } Modified: zeus/trunk/jiemamy-zeus/pom.xml =================================================================== --- zeus/trunk/jiemamy-zeus/pom.xml 2009-04-09 08:50:45 UTC (rev 3205) +++ zeus/trunk/jiemamy-zeus/pom.xml 2009-04-10 10:25:41 UTC (rev 3206) @@ -129,22 +129,39 @@ <outputEncoding>UTF-8</outputEncoding> </configuration> </plugin> + <plugin> + <groupId>com.googlecode.maven-overview-plugin</groupId> + <artifactId>maven-overview-plugin</artifactId> + <version>1.3</version> + </plugin> </plugins> </build> <pluginRepositories> - <pluginRepository> - <id>Codehaus Snapshots</id> - <url>http://snapshots.repository.codehaus.org/</url> + <pluginRepository> + <id>Codehaus Snapshots</id> + <url>http://snapshots.repository.codehaus.org/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> - </pluginRepository> + </pluginRepository> + <pluginRepository> + <id>overview plugin</id> + <url>https://kungfoo-m2.googlecode.com/svn/release-repo</url> + <releases> + <enabled>true</enabled> + </releases> + </pluginRepository> </pluginRepositories> <reporting> <plugins> + <plugin> + <groupId>com.googlecode.maven-overview-plugin</groupId> + <artifactId>maven-overview-plugin</artifactId> + <version>1.3</version> + </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> @@ -236,7 +253,7 @@ <effort>Max</effort> </configuration> </plugin> - <plugin><!-- コレがコケることがある? --> + <plugin> <artifactId>maven-pmd-plugin</artifactId> <configuration> <sourceEncoding>UTF-8</sourceEncoding>