svnno****@sourc*****
svnno****@sourc*****
2009年 4月 13日 (月) 18:53:04 JST
Revision: 3251 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3251 Author: j5ik2o Date: 2009-04-13 18:53:04 +0900 (Mon, 13 Apr 2009) Log Message: ----------- リファクタリング Modified Paths: -------------- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AssociationResolver.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AttributeDescFactoryImpl.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/CompositeUniqueConstraintDescFactoryImpl.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntityDescFactoryImpl.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntitySetDescFactoryImpl.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/PluralFormDictinary.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModel.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModelFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AttributeModelFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/CompositeUniqueConstraintModelFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/EntityModelFactory.java Added Paths: ----------- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationType.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/ Removed Paths: ------------- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationType.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDesc.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDescFactory.java leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/ -------------- next part -------------- Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationDesc.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationDesc.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,222 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * 関連記述インターフェイス。 - * - * @author j5ik2o - */ -public class AssociationDesc { - - /** 名前 */ - protected String name; - - /** 関連先のエンティティ記述 */ - protected EntityDesc referencedEntityDesc; - - /** 関連タイプ */ - protected AssociationType associationType; - - /** 関連の所有者側のプロパティの名前 */ - protected String mappedBy; - - /** カラム名のリスト */ - protected List<String> columnNameList = new ArrayList<String>(); - - /** 参照されるテーブルのカタログ名 */ - protected String referencedCatalogName; - - /** 参照されるテーブルのスキーマ名 */ - protected String referencedSchemaName; - - /** 参照されるテーブル名 */ - protected String referencedTableName; - - /** 参照されるカラム名のリスト */ - protected List<String> referencedColumnNameList = new ArrayList<String>(); - - - /** - * カラム名を追加する。 - * - * @param columnName カラム名 - */ - public void addColumnName(String columnName) { - columnNameList.add(columnName); - } - - /** - * 参照されるカラム名を追加する。 - * - * @param referencedColumnName 参照されるカラム名 - */ - public void addReferencedColumnName(String referencedColumnName) { - referencedColumnNameList.add(referencedColumnName); - } - - /** - * 関連タイプを取得する。 - * - * @return 関連タイプ - */ - public AssociationType getAssociationType() { - return associationType; - } - - /** - * カラム名のリストを取得する。 - * - * @return カラム名のリスト - */ - public List<String> getColumnNameList() { - return Collections.unmodifiableList(columnNameList); - } - - /** - * 関連の所有者側のプロパティの名前を取得する。 - * - * @return 関連の所有者側のプロパティの名前 - */ - public String getMappedBy() { - return mappedBy; - } - - /** - * 名前を取得する。 - * - * @return 名前 - */ - public String getName() { - return name; - } - - /** - * 参照されるテーブルのカタログ名を取得する。 - * - * @return 参照されるテーブルのカタログ名 - */ - public String getReferencedCatalogName() { - return referencedCatalogName; - } - - /** - * 参照されるカラム名のリストを取得する。 - * - * @return 参照されるカラム名のリスト - */ - public List<String> getReferencedColumnNameList() { - return Collections.unmodifiableList(referencedColumnNameList); - } - - /** - * 関連先のエンティティ記述を取得する。 - * - * @return 関連先のエンティティ記述 - */ - public EntityDesc getReferencedEntityDesc() { - return referencedEntityDesc; - } - - /** - * 参照されるテーブルのスキーマ名を取得する。 - * - * @return 参照されるテーブルのスキーマ名 - */ - public String getReferencedSchemaName() { - return referencedSchemaName; - } - - /** - * 参照されるテーブル名を取得する。 - * - * @return 参照されるテーブル名 - */ - public String getReferencedTableName() { - return referencedTableName; - } - - /** - * 関連タイプを設定する。 - * - * @param associationType 関連タイプ - */ - public void setAssociationType(AssociationType associationType) { - this.associationType = associationType; - } - - /** - * 関連の所有者側のプロパティの名前を設定する。 - * - * @param mappedBy 関連の所有者側のプロパティの名前 - */ - public void setMappedBy(String mappedBy) { - this.mappedBy = mappedBy; - } - - /** - * 名前を設定する。 - * - * @param name 名前 - */ - public void setName(String name) { - this.name = name; - } - - /** - * 参照されるテーブルのカタログ名を設定する。 - * - * @param referencedCatalogName 参照されるテーブルのカタログ名 - */ - public void setReferencedCatalogName(String referencedCatalogName) { - this.referencedCatalogName = referencedCatalogName; - } - - /** - * 関連先のエンティティ記述を設定する。 - * - * @param relationshipEntityDesc 関連先のエンティティ記述 - */ - public void setReferencedEntityDesc(EntityDesc relationshipEntityDesc) { - referencedEntityDesc = relationshipEntityDesc; - } - - /** - * 参照されるテーブルのスキーマ名を設定する。 - * - * @param referencedSchemaName 参照されるテーブルのスキーマ名 - */ - public void setReferencedSchemaName(String referencedSchemaName) { - this.referencedSchemaName = referencedSchemaName; - } - - /** - * 参照されるテーブル名を設定する。 - * - * @param referencedTableName 参照されるテーブル名 - */ - public void setReferencedTableName(String referencedTableName) { - this.referencedTableName = referencedTableName; - } - -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationType.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationType.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationType.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,71 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.lang.annotation.Annotation; - -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; - -/** - * 関連タイプ。 - * - * @author j5ik2o - */ -public enum AssociationType { - - /** - * 多対一です。 - */ - MANY_TO_ONE { - - @Override - public Class<? extends Annotation> getAnnotation() { - return ManyToOne.class; - } - }, - /** - * 一対多です。 - */ - ONE_TO_MANY { - - @Override - public Class<? extends Annotation> getAnnotation() { - return OneToMany.class; - } - }, - /** - * 一対一です。 - */ - ONE_TO_ONE { - - @Override - public Class<? extends Annotation> getAnnotation() { - return OneToOne.class; - } - }; - - /** - * アノテーションを返します。 - * - * @return アノテーション - */ - public abstract Class<? extends Annotation> getAnnotation(); -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDesc.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDesc.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,464 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import javax.persistence.GenerationType; -import javax.persistence.TemporalType; - -/** - * エンティティの属性記述インターフェイス。 - * - * @author j5ik2o - */ -public class AttributeDesc { - - /** 名前 */ - protected String name; - - /** 属性のクラス */ - protected Class<?> attributeClass; - - /** 識別子の場合{@code true} */ - protected boolean id; - - /** 識別子の生成方法を示す列挙型、生成しない場合{@code null} */ - protected GenerationType generationType; - - /** 識別子の初期値 */ - protected int initialValue; - - /** 識別子の割り当てサイズ */ - protected int allocationSize; - - /** バージョンの場合{@code true} */ - protected boolean version; - - /** 一時的の場合{@code true} */ - protected boolean trnsient; - - /** {@code LOB}の場合{@code true} */ - protected boolean lob; - - /** カラムの名前 */ - protected String columnName; - - /** 長さ */ - protected int length; - - /** 精度 */ - protected int precision; - - /** スケール */ - protected int scale; - - /** NULL可能の場合{@code true} */ - protected boolean nullable; - - /** 一意の場合{@code true} */ - protected boolean unique; - - /** カラム定義 */ - protected String columnDefinition; - - /** カラムの型名 */ - protected String columnTypeName; - - /** サポートされていないカラム型の場合{@code true} */ - protected boolean unsupportedColumnType; - - /** コメント */ - protected String comment; - - - /** - * インスタンスを生成する。 - */ - public AttributeDesc() { - } - - /** - * 識別子の割り当てサイズを取得する。 - * - * @return 識別子の割り当てサイズ - */ - public int getAllocationSize() { - return allocationSize; - } - - /** - * 属性のクラスを取得する。 - * - * @return 属性のクラス - */ - public Class<?> getAttributeClass() { - return attributeClass; - } - - /** - * カラム定義を取得する。 - * - * @return カラム定義 - */ - public String getColumnDefinition() { - return columnDefinition; - } - - /** - * カラムの名前を取得する。 - * - * @return カラムの名前 - */ - public String getColumnName() { - return columnName; - } - - /** - * カラムの型名を取得する。 - * - * @return カラムの型名 - */ - public String getColumnTypeName() { - return columnTypeName; - } - - /** - * コメントを取得する。 - * - * @return コメント - */ - public String getComment() { - return comment; - } - - /** - * 識別子の生成方法を示す列挙型を取得する。 - * - * @return 識別子の生成方法を示す列挙型、生成しない場合{@code null} - */ - public GenerationType getGenerationType() { - return generationType; - } - - /** - * 識別子の初期値を取得する。 - * - * @return 識別子の初期値 - */ - public int getInitialValue() { - return initialValue; - } - - /** - * 長さを取得する。 - * - * @return 長さ - */ - public int getLength() { - return length; - } - - /** - * 名前を取得する。 - * - * @return 名前 - */ - public String getName() { - return name; - } - - /** - * 精度を取得する。 - * - * @return 精度 - */ - public int getPrecision() { - return precision; - } - - /** - * スケールを取得する。 - * - * @return スケール - */ - public int getScale() { - return scale; - } - - /** - * 時制の種別を取得する。 - * - * @return 時制の種別、対応する種別がない場合{@code null} - */ - public TemporalType getTemporalType() { - if (attributeClass == java.sql.Date.class) { - return TemporalType.DATE; - } - if (attributeClass == java.sql.Time.class) { - return TemporalType.TIME; - } - if (attributeClass == java.sql.Timestamp.class) { - return TemporalType.TIMESTAMP; - } - return null; - } - - /** - * 識別子の場合{@code true}を取得する。 - * - * @return 識別子の場合{@code true}、そうでなければ{@code false} - */ - public boolean isId() { - return id; - } - - /** - * {@code LOB}の場合{@code true}を取得する。 - * - * @return {@code LOB}の場合{@code true}、そうでなければ{@code false} - */ - public boolean isLob() { - return lob; - } - - /** - * NULL可能の場合{@code true}を取得する。 - * - * @return NULL可能の場合{@code true}、そうでない場合{@code false} - */ - public boolean isNullable() { - return nullable; - } - - /** - * 時制を表す場合{@code true}を取得する。 - * - * @return 時制を表す場合{@code true} - */ - public boolean isTemporal() { - return getTemporalType() != null; - } - - /** - * 一時的の場合{@code true}を取得する。 - * - * @return 一時的の場合{@code true}、そうでなければ{@code false} - */ - public boolean isTransient() { - return trnsient; - } - - /** - * 一意の場合{@code true}、そうでない場合{@code false}を取得する。 - * - * @return 一意の場合{@code true}、そうでない場合{@code false} - */ - public boolean isUnique() { - return unique; - } - - /** - * サポートされていないカラム型の場合{@code true}を取得する。 - * - * @return サポートされていないカラム型の場合{@code true}、そうでない場合{@code false} - */ - public boolean isUnsupportedColumnType() { - return unsupportedColumnType; - } - - /** - * バージョンの場合{@code true}を取得する。 - * - * @return バージョンの場合{@code true}、そうでなければ{@code false} - */ - public boolean isVersion() { - return version; - } - - /** - * 識別子の割り当てサイズを設定する。 - * - * @param allocationSize 識別子の割り当てサイズ - */ - public void setAllocationSize(int allocationSize) { - this.allocationSize = allocationSize; - } - - /** - * 属性のクラスを設定する。 - * - * @param attributeClass 属性のクラス - */ - public void setAttributeClass(Class<?> attributeClass) { - this.attributeClass = attributeClass; - } - - /** - * カラム定義を設定する。 - * - * @param columnDefinition カラム定義 - */ - public void setColumnDefinition(String columnDefinition) { - this.columnDefinition = columnDefinition; - } - - /** - * カラムの名前を設定する。 - * - * @param columnName カラムの名前 - */ - public void setColumnName(String columnName) { - this.columnName = columnName; - } - - /** - * カラムの型名を設定する。 - * - * @param columnTypeName カラムの型名 - */ - public void setColumnTypeName(String columnTypeName) { - this.columnTypeName = columnTypeName; - } - - /** - * コメントを設定する。 - * - * @param comment コメント - */ - public void setComment(String comment) { - this.comment = comment; - } - - /** - * 識別子の生成方法を示す列挙型を設定する。 - * - * @param generationType 識別子の生成方法を示す列挙型、生成しない場合{@code null} - */ - public void setGenerationType(GenerationType generationType) { - this.generationType = generationType; - } - - /** - * 識別子の場合{@code true}を設定する。 - * - * @param id 識別子の場合{@code true} - */ - public void setId(boolean id) { - this.id = id; - } - - /** - * 識別子の初期値を設定する。 - * - * @param initialValue 識別子の初期値 - */ - public void setInitialValue(int initialValue) { - this.initialValue = initialValue; - } - - /** - * 長さを設定する。 - * - * @param length 長さ - */ - public void setLength(int length) { - this.length = length; - } - - /** - * {@code LOB}の場合{@code true}を設定する。 - * - * @param lob {@code LOB}の場合{@code true} - */ - public void setLob(boolean lob) { - this.lob = lob; - } - - /** - * 名前を設定する。 - * - * @param name 名前 - */ - public void setName(String name) { - this.name = name; - } - - /** - * NULL可能の場合{@code true}を設定する。 - * - * @param nullable NULL可能の場合{@code true} - */ - public void setNullable(boolean nullable) { - this.nullable = nullable; - } - - /** - * 精度を設定する。 - * - * @param precision 精度 - */ - public void setPrecision(int precision) { - this.precision = precision; - } - - /** - * スケールを設定する。 - * - * @param scale スケール - */ - public void setScale(int scale) { - this.scale = scale; - } - - /** - * 一時的の場合{@code true}を設定する。 - * - * @param trnsient 一時的の場合{@code true} - */ - public void setTransient(boolean trnsient) { - this.trnsient = trnsient; - } - - /** - * 一意の場合{@code true}、そうでない場合{@code false}を設定する。 - * - * @param unique 一意の場合{@code true} - */ - public void setUnique(boolean unique) { - this.unique = unique; - } - - /** - * サポートされていないカラム型の場合{@code true}を設定する。 - * - * @param unsupportedColumnType サポートされていないカラム型の場合{@code true}、そうでない場合{@code false} - */ - public void setUnsupportedColumnType(boolean unsupportedColumnType) { - this.unsupportedColumnType = unsupportedColumnType; - } - - /** - * バージョンの場合{@code true}を設定する。 - * - * @param version バージョンの場合{@code true} - */ - public void setVersion(boolean version) { - this.version = version; - } - -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDescFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDescFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,39 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import org.jiemamy.entity.io.meta.DbColumnMeta; -import org.jiemamy.entity.io.meta.DbTableMeta; - -/** - * {@link AttributeDesc 属性記述}のファクトリインターフェイス。 - * - * @author j5ik2o - */ -public interface AttributeDescFactory { - - /** - * 属性記述を取得する。 - * - * @param tableMeta テーブルメタデータ - * @param columnMeta カラムメタデータ - * @return 属性記述 - */ - AttributeDesc getAttributeDesc(DbTableMeta tableMeta, DbColumnMeta columnMeta); -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDesc.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDesc.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,63 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * 複合一意制約記述インターフェイス。 - * - * @author j5ik2o - */ -public class CompositeUniqueConstraintDesc { - - /** カラム名のリスト */ - protected List<String> columnNameList = new ArrayList<String>(); - - - /** - * カラム名を追加する。 - * - * @param columnName カラム名 - */ - public void addColumnName(String columnName) { - columnNameList.add(columnName); - } - - /** - * カラム名のリストを取得する。 - * - * @return カラム名のリスト - */ - public List<String> getColumnNameList() { - return Collections.unmodifiableList(columnNameList); - } - - /** - * 複合一意制約の場合{@code true}、そうでない場合{@code false}を取得する。 - * - * @return 複合一意制約の場合{@code true}、そうでない場合{@code false} - */ - public boolean isComposite() { - return columnNameList.size() > 1; - } - -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDescFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDescFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,37 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import org.jiemamy.entity.io.meta.DbUniqueKeyMeta; - -/** - * {@link CompositeUniqueConstraintDesc}のファクトリインターフェイス。 - * - * @author j5ik2o - */ -public interface CompositeUniqueConstraintDescFactory { - - /** - * 一意制約記述を取得する。 - * - * @param uniqueKeyMeta 一意キーメタデータ - * @return 存在する場合は一意制約記述、存在しない場合は{@code null} - */ - CompositeUniqueConstraintDesc getCompositeUniqueConstraintDesc(DbUniqueKeyMeta uniqueKeyMeta); -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDesc.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDesc.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,281 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * エンティティ記述インターフェイス。 - * - * @author j5ik2o - */ -public class EntityDesc { - - /** 名前 */ - protected String name; - - /** カタログ名 */ - protected String catalogName; - - /** スキーマ名 */ - protected String schemaName; - - /** テーブル名 */ - protected String tableName; - - /** 複合識別子をもつならば{@code true} */ - protected boolean compositeId; - - /** コメント */ - protected String comment; - - /** 属性記述のリスト */ - protected List<AttributeDesc> attributeDescList = new ArrayList<AttributeDesc>(); - - /** 識別子である属性記述のリスト */ - protected List<AttributeDesc> idAttributeDescList = new ArrayList<AttributeDesc>(); - - /** 関連記述のリスト */ - protected List<AssociationDesc> associationDescList = new ArrayList<AssociationDesc>(); - - /** 一意制約記述のリスト */ - protected List<CompositeUniqueConstraintDesc> compositeUniqueConstraintDescList = - new ArrayList<CompositeUniqueConstraintDesc>(); - - - /** - * インスタンスを生成する。 - */ - public EntityDesc() { - } - - /** - * 関連記述を追加する。 - * - * @param associationDesc 関連記述 - */ - public void addAssociationDesc(AssociationDesc associationDesc) { - associationDescList.add(associationDesc); - } - - /** - * 属性記述を追加する。 - * - * @param attributeDesc 属性記述 - */ - public void addAttributeDesc(AttributeDesc attributeDesc) { - attributeDescList.add(attributeDesc); - if (attributeDesc.isId()) { - idAttributeDescList.add(attributeDesc); - } - } - - /** - * 複合一意制約記述を追加する。 - * - * @param compositeUniqueConstraintDesc 複合一意制約記述 - */ - public void addCompositeUniqueConstraintDesc(CompositeUniqueConstraintDesc compositeUniqueConstraintDesc) { - compositeUniqueConstraintDescList.add(compositeUniqueConstraintDesc); - } - - /** - * 関連記述のリストを取得する。 - * - * @return 関連記述のリスト - */ - public List<AssociationDesc> getAssociationDescList() { - return Collections.unmodifiableList(associationDescList); - } - - /** - * 属性記述のリストを取得する。 - * - * @return 属性記述のリスト - */ - public List<AttributeDesc> getAttributeDescList() { - return Collections.unmodifiableList(attributeDescList); - } - - /** - * カタログ名を取得する。 - * - * @return カタログ名 - */ - public String getCatalogName() { - return catalogName; - } - - /** - * コメントを取得する。 - * - * @return コメント - */ - public String getComment() { - return comment; - } - - /** - * 複合一意制約記述のリストを取得する。 - * - * @return 複合一意制約記述のリスト - */ - public List<CompositeUniqueConstraintDesc> getCompositeUniqueConstraintDescList() { - return Collections.unmodifiableList(compositeUniqueConstraintDescList); - } - - /** - * 完全なテーブル名を取得する。 - * - * @return 完全なテーブル名 - */ - public String getFullTableName() { - StringBuilder buf = new StringBuilder(); - if (catalogName != null) { - buf.append(catalogName).append("."); - } - if (schemaName != null) { - buf.append(schemaName).append("."); - } - return buf.append(tableName).toString(); - } - - /** - * 識別子である属性記述のリストを取得する。 - * - * @return 識別子である属性記述のリスト - */ - public List<AttributeDesc> getIdAttributeDescList() { - return Collections.unmodifiableList(idAttributeDescList); - } - - /** - * 名前を取得する。 - * - * @return 名前 - */ - public String getName() { - return name; - } - - /** - * スキーマ名を取得する。 - * - * @return スキーマ名 - */ - public String getSchemaName() { - return schemaName; - } - - /** - * テーブル名を取得する。 - * - * @return テーブル名 - */ - public String getTableName() { - return tableName; - } - - /** - * 指定された関連名の関連記述を持っている場合{@code true}を取得する。 - * - * @param associationName 関連名 - * @return 指定された関連名の関連記述を持っている場合{@code true}、そうでない場合{@code false} - */ - public boolean hasAssociationDesc(String associationName) { - for (AssociationDesc associationDesc : associationDescList) { - if (associationDesc.getName().equals(associationName)) { - return true; - } - } - return false; - } - - /** - * 指定された属性名の属性記述を持っている場合{@code true}を取得する。 - * - * @param attributeName 属性名 - * @return 指定された属性名の属性記述を持っている場合{@code true}、そうでない場合{@code false} - */ - public boolean hasAttributeDesc(String attributeName) { - for (AttributeDesc attributeDesc : attributeDescList) { - if (attributeDesc.getName().equals(attributeName)) { - return true; - } - } - return false; - } - - /** - * 複合識別子を持つならば{@code true}を取得する。 - * - * @return 複合識別子を持つならば{@code true}、そうでないならば{@code false} - */ - public boolean hasCompositeId() { - return idAttributeDescList.size() > 1; - } - - /** - * カタログ名を設定する。 - * - * @param catalogName カタログ名 - */ - public void setCatalogName(String catalogName) { - this.catalogName = catalogName; - } - - /** - * コメントを設定する。 - * - * @param comment コメント - */ - public void setComment(String comment) { - this.comment = comment; - } - - /** - * 名前を設定する。 - * - * @param name 名前 - */ - public void setName(String name) { - this.name = name; - } - - /** - * スキーマ名を設定する。 - * - * @param schemaName スキーマ名 - */ - public void setSchemaName(String schemaName) { - this.schemaName = schemaName; - } - - /** - * テーブル名を設定する。 - * - * @param tableName テーブル名 - */ - public void setTableName(String tableName) { - this.tableName = tableName; - } - -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDescFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDescFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,37 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import org.jiemamy.entity.io.meta.DbTableMeta; - -/** - * {@link EntityDesc}のファクトリインターフェイス。 - * - * @author j5ik2o - */ -public interface EntityDescFactory { - - /** - * エンティティ記述を取得する。 - * - * @param tableMeta テーブルメタデータ - * @return エンティティ記述 - */ - EntityDesc getEntityDesc(DbTableMeta tableMeta); -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDesc.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDesc.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,71 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.jiemamy.utils.ArrayMap; - -/** - * エンティティ集合記述インターフェイス。 - * - * @author j5ik2o - */ -public class EntitySetDesc { - - /** エンティティ記述のリスト */ - protected List<EntityDesc> entityDescList = new ArrayList<EntityDesc>(); - - /** 完全なテーブル名をキー、エンティティ記述を値とするマップ */ - protected Map<String, EntityDesc> entityDescMap = new ArrayMap<String, EntityDesc>(); - - - /** - * エンティティ記述を追加する。 - * - * @param entityDesc エンティティ記述 - */ - public void addEntityDesc(EntityDesc entityDesc) { - entityDescList.add(entityDesc); - entityDescMap.put(entityDesc.getFullTableName(), entityDesc); - } - - /** - * 完全なテーブル名に対応するエンティティ記述を取得する。 - * - * @param fullTableName 完全なテーブル名 - * @return エンティティ記述、存在しない場合{@code null} - */ - public EntityDesc getEntityDesc(String fullTableName) { - return entityDescMap.get(fullTableName); - } - - /** - * エンティティ記述のリストを取得する。 - * - * @return エンティティ記述のリスト - */ - public List<EntityDesc> getEntityDescList() { - return Collections.unmodifiableList(entityDescList); - } - -} Deleted: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDescFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDescFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -1,37 +0,0 @@ -/* - * Copyright 2007-2009 Jiemamy Project and the Others. - * Created on Apr 7, 2009 - * - * 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.entity.io.desc; - -import java.io.IOException; - -/** - * {@link EntitySetDesc}のファクトリインターフェイス。 - * - * @author j5ik2o - */ -public interface EntitySetDescFactory { - - /** - * エンティティ集合記述を取得する。 - * - * @return エンティティ集合記述 - * @throws IOException 入出力が失敗した場合 - */ - EntitySetDesc getEntitySetDesc() throws IOException; -} Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationDesc.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationDesc.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationDesc.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,222 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 関連記述インターフェイス。 + * + * @author j5ik2o + */ +public class AssociationDesc { + + /** 名前 */ + protected String name; + + /** 関連先のエンティティ記述 */ + protected EntityDesc referencedEntityDesc; + + /** 関連タイプ */ + protected AssociationType associationType; + + /** 関連の所有者側のプロパティの名前 */ + protected String mappedBy; + + /** カラム名のリスト */ + protected List<String> columnNameList = new ArrayList<String>(); + + /** 参照されるテーブルのカタログ名 */ + protected String referencedCatalogName; + + /** 参照されるテーブルのスキーマ名 */ + protected String referencedSchemaName; + + /** 参照されるテーブル名 */ + protected String referencedTableName; + + /** 参照されるカラム名のリスト */ + protected List<String> referencedColumnNameList = new ArrayList<String>(); + + + /** + * カラム名を追加する。 + * + * @param columnName カラム名 + */ + public void addColumnName(String columnName) { + columnNameList.add(columnName); + } + + /** + * 参照されるカラム名を追加する。 + * + * @param referencedColumnName 参照されるカラム名 + */ + public void addReferencedColumnName(String referencedColumnName) { + referencedColumnNameList.add(referencedColumnName); + } + + /** + * 関連タイプを取得する。 + * + * @return 関連タイプ + */ + public AssociationType getAssociationType() { + return associationType; + } + + /** + * カラム名のリストを取得する。 + * + * @return カラム名のリスト + */ + public List<String> getColumnNameList() { + return Collections.unmodifiableList(columnNameList); + } + + /** + * 関連の所有者側のプロパティの名前を取得する。 + * + * @return 関連の所有者側のプロパティの名前 + */ + public String getMappedBy() { + return mappedBy; + } + + /** + * 名前を取得する。 + * + * @return 名前 + */ + public String getName() { + return name; + } + + /** + * 参照されるテーブルのカタログ名を取得する。 + * + * @return 参照されるテーブルのカタログ名 + */ + public String getReferencedCatalogName() { + return referencedCatalogName; + } + + /** + * 参照されるカラム名のリストを取得する。 + * + * @return 参照されるカラム名のリスト + */ + public List<String> getReferencedColumnNameList() { + return Collections.unmodifiableList(referencedColumnNameList); + } + + /** + * 関連先のエンティティ記述を取得する。 + * + * @return 関連先のエンティティ記述 + */ + public EntityDesc getReferencedEntityDesc() { + return referencedEntityDesc; + } + + /** + * 参照されるテーブルのスキーマ名を取得する。 + * + * @return 参照されるテーブルのスキーマ名 + */ + public String getReferencedSchemaName() { + return referencedSchemaName; + } + + /** + * 参照されるテーブル名を取得する。 + * + * @return 参照されるテーブル名 + */ + public String getReferencedTableName() { + return referencedTableName; + } + + /** + * 関連タイプを設定する。 + * + * @param associationType 関連タイプ + */ + public void setAssociationType(AssociationType associationType) { + this.associationType = associationType; + } + + /** + * 関連の所有者側のプロパティの名前を設定する。 + * + * @param mappedBy 関連の所有者側のプロパティの名前 + */ + public void setMappedBy(String mappedBy) { + this.mappedBy = mappedBy; + } + + /** + * 名前を設定する。 + * + * @param name 名前 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 参照されるテーブルのカタログ名を設定する。 + * + * @param referencedCatalogName 参照されるテーブルのカタログ名 + */ + public void setReferencedCatalogName(String referencedCatalogName) { + this.referencedCatalogName = referencedCatalogName; + } + + /** + * 関連先のエンティティ記述を設定する。 + * + * @param relationshipEntityDesc 関連先のエンティティ記述 + */ + public void setReferencedEntityDesc(EntityDesc relationshipEntityDesc) { + referencedEntityDesc = relationshipEntityDesc; + } + + /** + * 参照されるテーブルのスキーマ名を設定する。 + * + * @param referencedSchemaName 参照されるテーブルのスキーマ名 + */ + public void setReferencedSchemaName(String referencedSchemaName) { + this.referencedSchemaName = referencedSchemaName; + } + + /** + * 参照されるテーブル名を設定する。 + * + * @param referencedTableName 参照されるテーブル名 + */ + public void setReferencedTableName(String referencedTableName) { + this.referencedTableName = referencedTableName; + } + +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationDesc.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationType.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AssociationType.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationType.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationType.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,71 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.lang.annotation.Annotation; + +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; + +/** + * 関連タイプ。 + * + * @author j5ik2o + */ +public enum AssociationType { + + /** + * 多対一です。 + */ + MANY_TO_ONE { + + @Override + public Class<? extends Annotation> getAnnotation() { + return ManyToOne.class; + } + }, + /** + * 一対多です。 + */ + ONE_TO_MANY { + + @Override + public Class<? extends Annotation> getAnnotation() { + return OneToMany.class; + } + }, + /** + * 一対一です。 + */ + ONE_TO_ONE { + + @Override + public Class<? extends Annotation> getAnnotation() { + return OneToOne.class; + } + }; + + /** + * アノテーションを返します。 + * + * @return アノテーション + */ + public abstract Class<? extends Annotation> getAnnotation(); +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AssociationType.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDesc.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDesc.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDesc.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,464 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import javax.persistence.GenerationType; +import javax.persistence.TemporalType; + +/** + * エンティティの属性記述インターフェイス。 + * + * @author j5ik2o + */ +public class AttributeDesc { + + /** 名前 */ + protected String name; + + /** 属性のクラス */ + protected Class<?> attributeClass; + + /** 識別子の場合{@code true} */ + protected boolean id; + + /** 識別子の生成方法を示す列挙型、生成しない場合{@code null} */ + protected GenerationType generationType; + + /** 識別子の初期値 */ + protected int initialValue; + + /** 識別子の割り当てサイズ */ + protected int allocationSize; + + /** バージョンの場合{@code true} */ + protected boolean version; + + /** 一時的の場合{@code true} */ + protected boolean trnsient; + + /** {@code LOB}の場合{@code true} */ + protected boolean lob; + + /** カラムの名前 */ + protected String columnName; + + /** 長さ */ + protected int length; + + /** 精度 */ + protected int precision; + + /** スケール */ + protected int scale; + + /** NULL可能の場合{@code true} */ + protected boolean nullable; + + /** 一意の場合{@code true} */ + protected boolean unique; + + /** カラム定義 */ + protected String columnDefinition; + + /** カラムの型名 */ + protected String columnTypeName; + + /** サポートされていないカラム型の場合{@code true} */ + protected boolean unsupportedColumnType; + + /** コメント */ + protected String comment; + + + /** + * インスタンスを生成する。 + */ + public AttributeDesc() { + } + + /** + * 識別子の割り当てサイズを取得する。 + * + * @return 識別子の割り当てサイズ + */ + public int getAllocationSize() { + return allocationSize; + } + + /** + * 属性のクラスを取得する。 + * + * @return 属性のクラス + */ + public Class<?> getAttributeClass() { + return attributeClass; + } + + /** + * カラム定義を取得する。 + * + * @return カラム定義 + */ + public String getColumnDefinition() { + return columnDefinition; + } + + /** + * カラムの名前を取得する。 + * + * @return カラムの名前 + */ + public String getColumnName() { + return columnName; + } + + /** + * カラムの型名を取得する。 + * + * @return カラムの型名 + */ + public String getColumnTypeName() { + return columnTypeName; + } + + /** + * コメントを取得する。 + * + * @return コメント + */ + public String getComment() { + return comment; + } + + /** + * 識別子の生成方法を示す列挙型を取得する。 + * + * @return 識別子の生成方法を示す列挙型、生成しない場合{@code null} + */ + public GenerationType getGenerationType() { + return generationType; + } + + /** + * 識別子の初期値を取得する。 + * + * @return 識別子の初期値 + */ + public int getInitialValue() { + return initialValue; + } + + /** + * 長さを取得する。 + * + * @return 長さ + */ + public int getLength() { + return length; + } + + /** + * 名前を取得する。 + * + * @return 名前 + */ + public String getName() { + return name; + } + + /** + * 精度を取得する。 + * + * @return 精度 + */ + public int getPrecision() { + return precision; + } + + /** + * スケールを取得する。 + * + * @return スケール + */ + public int getScale() { + return scale; + } + + /** + * 時制の種別を取得する。 + * + * @return 時制の種別、対応する種別がない場合{@code null} + */ + public TemporalType getTemporalType() { + if (attributeClass == java.sql.Date.class) { + return TemporalType.DATE; + } + if (attributeClass == java.sql.Time.class) { + return TemporalType.TIME; + } + if (attributeClass == java.sql.Timestamp.class) { + return TemporalType.TIMESTAMP; + } + return null; + } + + /** + * 識別子の場合{@code true}を取得する。 + * + * @return 識別子の場合{@code true}、そうでなければ{@code false} + */ + public boolean isId() { + return id; + } + + /** + * {@code LOB}の場合{@code true}を取得する。 + * + * @return {@code LOB}の場合{@code true}、そうでなければ{@code false} + */ + public boolean isLob() { + return lob; + } + + /** + * NULL可能の場合{@code true}を取得する。 + * + * @return NULL可能の場合{@code true}、そうでない場合{@code false} + */ + public boolean isNullable() { + return nullable; + } + + /** + * 時制を表す場合{@code true}を取得する。 + * + * @return 時制を表す場合{@code true} + */ + public boolean isTemporal() { + return getTemporalType() != null; + } + + /** + * 一時的の場合{@code true}を取得する。 + * + * @return 一時的の場合{@code true}、そうでなければ{@code false} + */ + public boolean isTransient() { + return trnsient; + } + + /** + * 一意の場合{@code true}、そうでない場合{@code false}を取得する。 + * + * @return 一意の場合{@code true}、そうでない場合{@code false} + */ + public boolean isUnique() { + return unique; + } + + /** + * サポートされていないカラム型の場合{@code true}を取得する。 + * + * @return サポートされていないカラム型の場合{@code true}、そうでない場合{@code false} + */ + public boolean isUnsupportedColumnType() { + return unsupportedColumnType; + } + + /** + * バージョンの場合{@code true}を取得する。 + * + * @return バージョンの場合{@code true}、そうでなければ{@code false} + */ + public boolean isVersion() { + return version; + } + + /** + * 識別子の割り当てサイズを設定する。 + * + * @param allocationSize 識別子の割り当てサイズ + */ + public void setAllocationSize(int allocationSize) { + this.allocationSize = allocationSize; + } + + /** + * 属性のクラスを設定する。 + * + * @param attributeClass 属性のクラス + */ + public void setAttributeClass(Class<?> attributeClass) { + this.attributeClass = attributeClass; + } + + /** + * カラム定義を設定する。 + * + * @param columnDefinition カラム定義 + */ + public void setColumnDefinition(String columnDefinition) { + this.columnDefinition = columnDefinition; + } + + /** + * カラムの名前を設定する。 + * + * @param columnName カラムの名前 + */ + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + /** + * カラムの型名を設定する。 + * + * @param columnTypeName カラムの型名 + */ + public void setColumnTypeName(String columnTypeName) { + this.columnTypeName = columnTypeName; + } + + /** + * コメントを設定する。 + * + * @param comment コメント + */ + public void setComment(String comment) { + this.comment = comment; + } + + /** + * 識別子の生成方法を示す列挙型を設定する。 + * + * @param generationType 識別子の生成方法を示す列挙型、生成しない場合{@code null} + */ + public void setGenerationType(GenerationType generationType) { + this.generationType = generationType; + } + + /** + * 識別子の場合{@code true}を設定する。 + * + * @param id 識別子の場合{@code true} + */ + public void setId(boolean id) { + this.id = id; + } + + /** + * 識別子の初期値を設定する。 + * + * @param initialValue 識別子の初期値 + */ + public void setInitialValue(int initialValue) { + this.initialValue = initialValue; + } + + /** + * 長さを設定する。 + * + * @param length 長さ + */ + public void setLength(int length) { + this.length = length; + } + + /** + * {@code LOB}の場合{@code true}を設定する。 + * + * @param lob {@code LOB}の場合{@code true} + */ + public void setLob(boolean lob) { + this.lob = lob; + } + + /** + * 名前を設定する。 + * + * @param name 名前 + */ + public void setName(String name) { + this.name = name; + } + + /** + * NULL可能の場合{@code true}を設定する。 + * + * @param nullable NULL可能の場合{@code true} + */ + public void setNullable(boolean nullable) { + this.nullable = nullable; + } + + /** + * 精度を設定する。 + * + * @param precision 精度 + */ + public void setPrecision(int precision) { + this.precision = precision; + } + + /** + * スケールを設定する。 + * + * @param scale スケール + */ + public void setScale(int scale) { + this.scale = scale; + } + + /** + * 一時的の場合{@code true}を設定する。 + * + * @param trnsient 一時的の場合{@code true} + */ + public void setTransient(boolean trnsient) { + this.trnsient = trnsient; + } + + /** + * 一意の場合{@code true}、そうでない場合{@code false}を設定する。 + * + * @param unique 一意の場合{@code true} + */ + public void setUnique(boolean unique) { + this.unique = unique; + } + + /** + * サポートされていないカラム型の場合{@code true}を設定する。 + * + * @param unsupportedColumnType サポートされていないカラム型の場合{@code true}、そうでない場合{@code false} + */ + public void setUnsupportedColumnType(boolean unsupportedColumnType) { + this.unsupportedColumnType = unsupportedColumnType; + } + + /** + * バージョンの場合{@code true}を設定する。 + * + * @param version バージョンの場合{@code true} + */ + public void setVersion(boolean version) { + this.version = version; + } + +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDesc.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDescFactory.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/AttributeDescFactory.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDescFactory.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,39 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import org.jiemamy.entity.io.meta.DbColumnMeta; +import org.jiemamy.entity.io.meta.DbTableMeta; + +/** + * {@link AttributeDesc 属性記述}のファクトリインターフェイス。 + * + * @author j5ik2o + */ +public interface AttributeDescFactory { + + /** + * 属性記述を取得する。 + * + * @param tableMeta テーブルメタデータ + * @param columnMeta カラムメタデータ + * @return 属性記述 + */ + AttributeDesc getAttributeDesc(DbTableMeta tableMeta, DbColumnMeta columnMeta); +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/AttributeDescFactory.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDesc.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDesc.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDesc.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,63 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 複合一意制約記述インターフェイス。 + * + * @author j5ik2o + */ +public class CompositeUniqueConstraintDesc { + + /** カラム名のリスト */ + protected List<String> columnNameList = new ArrayList<String>(); + + + /** + * カラム名を追加する。 + * + * @param columnName カラム名 + */ + public void addColumnName(String columnName) { + columnNameList.add(columnName); + } + + /** + * カラム名のリストを取得する。 + * + * @return カラム名のリスト + */ + public List<String> getColumnNameList() { + return Collections.unmodifiableList(columnNameList); + } + + /** + * 複合一意制約の場合{@code true}、そうでない場合{@code false}を取得する。 + * + * @return 複合一意制約の場合{@code true}、そうでない場合{@code false} + */ + public boolean isComposite() { + return columnNameList.size() > 1; + } + +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDesc.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDescFactory.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/CompositeUniqueConstraintDescFactory.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDescFactory.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,37 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import org.jiemamy.entity.io.meta.DbUniqueKeyMeta; + +/** + * {@link CompositeUniqueConstraintDesc}のファクトリインターフェイス。 + * + * @author j5ik2o + */ +public interface CompositeUniqueConstraintDescFactory { + + /** + * 一意制約記述を取得する。 + * + * @param uniqueKeyMeta 一意キーメタデータ + * @return 存在する場合は一意制約記述、存在しない場合は{@code null} + */ + CompositeUniqueConstraintDesc getCompositeUniqueConstraintDesc(DbUniqueKeyMeta uniqueKeyMeta); +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/CompositeUniqueConstraintDescFactory.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDesc.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDesc.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDesc.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,281 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * エンティティ記述インターフェイス。 + * + * @author j5ik2o + */ +public class EntityDesc { + + /** 名前 */ + protected String name; + + /** カタログ名 */ + protected String catalogName; + + /** スキーマ名 */ + protected String schemaName; + + /** テーブル名 */ + protected String tableName; + + /** 複合識別子をもつならば{@code true} */ + protected boolean compositeId; + + /** コメント */ + protected String comment; + + /** 属性記述のリスト */ + protected List<AttributeDesc> attributeDescList = new ArrayList<AttributeDesc>(); + + /** 識別子である属性記述のリスト */ + protected List<AttributeDesc> idAttributeDescList = new ArrayList<AttributeDesc>(); + + /** 関連記述のリスト */ + protected List<AssociationDesc> associationDescList = new ArrayList<AssociationDesc>(); + + /** 一意制約記述のリスト */ + protected List<CompositeUniqueConstraintDesc> compositeUniqueConstraintDescList = + new ArrayList<CompositeUniqueConstraintDesc>(); + + + /** + * インスタンスを生成する。 + */ + public EntityDesc() { + } + + /** + * 関連記述を追加する。 + * + * @param associationDesc 関連記述 + */ + public void addAssociationDesc(AssociationDesc associationDesc) { + associationDescList.add(associationDesc); + } + + /** + * 属性記述を追加する。 + * + * @param attributeDesc 属性記述 + */ + public void addAttributeDesc(AttributeDesc attributeDesc) { + attributeDescList.add(attributeDesc); + if (attributeDesc.isId()) { + idAttributeDescList.add(attributeDesc); + } + } + + /** + * 複合一意制約記述を追加する。 + * + * @param compositeUniqueConstraintDesc 複合一意制約記述 + */ + public void addCompositeUniqueConstraintDesc(CompositeUniqueConstraintDesc compositeUniqueConstraintDesc) { + compositeUniqueConstraintDescList.add(compositeUniqueConstraintDesc); + } + + /** + * 関連記述のリストを取得する。 + * + * @return 関連記述のリスト + */ + public List<AssociationDesc> getAssociationDescList() { + return Collections.unmodifiableList(associationDescList); + } + + /** + * 属性記述のリストを取得する。 + * + * @return 属性記述のリスト + */ + public List<AttributeDesc> getAttributeDescList() { + return Collections.unmodifiableList(attributeDescList); + } + + /** + * カタログ名を取得する。 + * + * @return カタログ名 + */ + public String getCatalogName() { + return catalogName; + } + + /** + * コメントを取得する。 + * + * @return コメント + */ + public String getComment() { + return comment; + } + + /** + * 複合一意制約記述のリストを取得する。 + * + * @return 複合一意制約記述のリスト + */ + public List<CompositeUniqueConstraintDesc> getCompositeUniqueConstraintDescList() { + return Collections.unmodifiableList(compositeUniqueConstraintDescList); + } + + /** + * 完全なテーブル名を取得する。 + * + * @return 完全なテーブル名 + */ + public String getFullTableName() { + StringBuilder buf = new StringBuilder(); + if (catalogName != null) { + buf.append(catalogName).append("."); + } + if (schemaName != null) { + buf.append(schemaName).append("."); + } + return buf.append(tableName).toString(); + } + + /** + * 識別子である属性記述のリストを取得する。 + * + * @return 識別子である属性記述のリスト + */ + public List<AttributeDesc> getIdAttributeDescList() { + return Collections.unmodifiableList(idAttributeDescList); + } + + /** + * 名前を取得する。 + * + * @return 名前 + */ + public String getName() { + return name; + } + + /** + * スキーマ名を取得する。 + * + * @return スキーマ名 + */ + public String getSchemaName() { + return schemaName; + } + + /** + * テーブル名を取得する。 + * + * @return テーブル名 + */ + public String getTableName() { + return tableName; + } + + /** + * 指定された関連名の関連記述を持っている場合{@code true}を取得する。 + * + * @param associationName 関連名 + * @return 指定された関連名の関連記述を持っている場合{@code true}、そうでない場合{@code false} + */ + public boolean hasAssociationDesc(String associationName) { + for (AssociationDesc associationDesc : associationDescList) { + if (associationDesc.getName().equals(associationName)) { + return true; + } + } + return false; + } + + /** + * 指定された属性名の属性記述を持っている場合{@code true}を取得する。 + * + * @param attributeName 属性名 + * @return 指定された属性名の属性記述を持っている場合{@code true}、そうでない場合{@code false} + */ + public boolean hasAttributeDesc(String attributeName) { + for (AttributeDesc attributeDesc : attributeDescList) { + if (attributeDesc.getName().equals(attributeName)) { + return true; + } + } + return false; + } + + /** + * 複合識別子を持つならば{@code true}を取得する。 + * + * @return 複合識別子を持つならば{@code true}、そうでないならば{@code false} + */ + public boolean hasCompositeId() { + return idAttributeDescList.size() > 1; + } + + /** + * カタログ名を設定する。 + * + * @param catalogName カタログ名 + */ + public void setCatalogName(String catalogName) { + this.catalogName = catalogName; + } + + /** + * コメントを設定する。 + * + * @param comment コメント + */ + public void setComment(String comment) { + this.comment = comment; + } + + /** + * 名前を設定する。 + * + * @param name 名前 + */ + public void setName(String name) { + this.name = name; + } + + /** + * スキーマ名を設定する。 + * + * @param schemaName スキーマ名 + */ + public void setSchemaName(String schemaName) { + this.schemaName = schemaName; + } + + /** + * テーブル名を設定する。 + * + * @param tableName テーブル名 + */ + public void setTableName(String tableName) { + this.tableName = tableName; + } + +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDesc.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDescFactory.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntityDescFactory.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDescFactory.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,37 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import org.jiemamy.entity.io.meta.DbTableMeta; + +/** + * {@link EntityDesc}のファクトリインターフェイス。 + * + * @author j5ik2o + */ +public interface EntityDescFactory { + + /** + * エンティティ記述を取得する。 + * + * @param tableMeta テーブルメタデータ + * @return エンティティ記述 + */ + EntityDesc getEntityDesc(DbTableMeta tableMeta); +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntityDescFactory.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDesc.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDesc.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDesc.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDesc.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,71 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.jiemamy.utils.ArrayMap; + +/** + * エンティティ集合記述インターフェイス。 + * + * @author j5ik2o + */ +public class EntitySetDesc { + + /** エンティティ記述のリスト */ + protected List<EntityDesc> entityDescList = new ArrayList<EntityDesc>(); + + /** 完全なテーブル名をキー、エンティティ記述を値とするマップ */ + protected Map<String, EntityDesc> entityDescMap = new ArrayMap<String, EntityDesc>(); + + + /** + * エンティティ記述を追加する。 + * + * @param entityDesc エンティティ記述 + */ + public void addEntityDesc(EntityDesc entityDesc) { + entityDescList.add(entityDesc); + entityDescMap.put(entityDesc.getFullTableName(), entityDesc); + } + + /** + * 完全なテーブル名に対応するエンティティ記述を取得する。 + * + * @param fullTableName 完全なテーブル名 + * @return エンティティ記述、存在しない場合{@code null} + */ + public EntityDesc getEntityDesc(String fullTableName) { + return entityDescMap.get(fullTableName); + } + + /** + * エンティティ記述のリストを取得する。 + * + * @return エンティティ記述のリスト + */ + public List<EntityDesc> getEntityDescList() { + return Collections.unmodifiableList(entityDescList); + } + +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDesc.java ___________________________________________________________________ Added: svn:mime-type + text/plain Copied: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDescFactory.java (from rev 3249, leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/EntitySetDescFactory.java) =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDescFactory.java (rev 0) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDescFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -0,0 +1,37 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on Apr 7, 2009 + * + * 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.entity.io.gen.desc; + +import java.io.IOException; + +/** + * {@link EntitySetDesc}のファクトリインターフェイス。 + * + * @author j5ik2o + */ +public interface EntitySetDescFactory { + + /** + * エンティティ集合記述を取得する。 + * + * @return エンティティ集合記述 + * @throws IOException 入出力が失敗した場合 + */ + EntitySetDesc getEntitySetDesc() throws IOException; +} Property changes on: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/EntitySetDescFactory.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AssociationResolver.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/AssociationResolver.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AssociationResolver.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,13 +13,13 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; -import org.jiemamy.entity.io.desc.AssociationDesc; -import org.jiemamy.entity.io.desc.AssociationType; -import org.jiemamy.entity.io.desc.AttributeDesc; -import org.jiemamy.entity.io.desc.EntityDesc; -import org.jiemamy.entity.io.desc.EntitySetDesc; +import org.jiemamy.entity.io.gen.desc.AssociationDesc; +import org.jiemamy.entity.io.gen.desc.AssociationType; +import org.jiemamy.entity.io.gen.desc.AttributeDesc; +import org.jiemamy.entity.io.gen.desc.EntityDesc; +import org.jiemamy.entity.io.gen.desc.EntitySetDesc; import org.jiemamy.entity.io.meta.DbForeignKeyMeta; import org.jiemamy.entity.io.meta.DbTableMeta; import org.jiemamy.utils.StringUtil; Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AttributeDescFactoryImpl.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/AttributeDescFactoryImpl.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/AttributeDescFactoryImpl.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,7 +13,7 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; import java.util.regex.Pattern; @@ -24,8 +24,8 @@ import org.apache.commons.lang.Validate; -import org.jiemamy.entity.io.desc.AttributeDesc; -import org.jiemamy.entity.io.desc.AttributeDescFactory; +import org.jiemamy.entity.io.gen.desc.AttributeDesc; +import org.jiemamy.entity.io.gen.desc.AttributeDescFactory; import org.jiemamy.entity.io.meta.DbColumnMeta; import org.jiemamy.entity.io.meta.DbTableMeta; import org.jiemamy.entity.io.utils.AnnotationUtil; Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/CompositeUniqueConstraintDescFactoryImpl.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/CompositeUniqueConstraintDescFactoryImpl.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/CompositeUniqueConstraintDescFactoryImpl.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,10 +13,10 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDesc; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDescFactory; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDesc; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDescFactory; import org.jiemamy.entity.io.meta.DbUniqueKeyMeta; /** Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntityDescFactoryImpl.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/EntityDescFactoryImpl.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntityDescFactoryImpl.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,16 +13,16 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; import org.apache.commons.lang.Validate; -import org.jiemamy.entity.io.desc.AttributeDesc; -import org.jiemamy.entity.io.desc.AttributeDescFactory; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDesc; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDescFactory; -import org.jiemamy.entity.io.desc.EntityDesc; -import org.jiemamy.entity.io.desc.EntityDescFactory; +import org.jiemamy.entity.io.gen.desc.AttributeDesc; +import org.jiemamy.entity.io.gen.desc.AttributeDescFactory; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDesc; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDescFactory; +import org.jiemamy.entity.io.gen.desc.EntityDesc; +import org.jiemamy.entity.io.gen.desc.EntityDescFactory; import org.jiemamy.entity.io.meta.DbColumnMeta; import org.jiemamy.entity.io.meta.DbTableMeta; import org.jiemamy.entity.io.meta.DbUniqueKeyMeta; Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntitySetDescFactoryImpl.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/EntitySetDescFactoryImpl.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/EntitySetDescFactoryImpl.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,7 +13,7 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; import java.io.BufferedReader; import java.io.File; @@ -27,12 +27,12 @@ import org.apache.commons.lang.Validate; -import org.jiemamy.entity.io.desc.AttributeDescFactory; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDescFactory; -import org.jiemamy.entity.io.desc.EntityDesc; -import org.jiemamy.entity.io.desc.EntityDescFactory; -import org.jiemamy.entity.io.desc.EntitySetDesc; -import org.jiemamy.entity.io.desc.EntitySetDescFactory; +import org.jiemamy.entity.io.gen.desc.AttributeDescFactory; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDescFactory; +import org.jiemamy.entity.io.gen.desc.EntityDesc; +import org.jiemamy.entity.io.gen.desc.EntityDescFactory; +import org.jiemamy.entity.io.gen.desc.EntitySetDesc; +import org.jiemamy.entity.io.gen.desc.EntitySetDescFactory; import org.jiemamy.entity.io.meta.DbForeignKeyMeta; import org.jiemamy.entity.io.meta.DbTableMeta; import org.jiemamy.entity.io.meta.DbTableMetaReader; Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/PluralFormDictinary.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/desc/impl/PluralFormDictinary.java 2009-04-13 09:50:11 UTC (rev 3249) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/gen/desc/impl/PluralFormDictinary.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -13,7 +13,7 @@ * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ -package org.jiemamy.entity.io.desc.impl; +package org.jiemamy.entity.io.gen.desc.impl; import java.util.LinkedHashMap; import java.util.Map; Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModel.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModel.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModel.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -17,7 +17,7 @@ */ package org.jiemamy.entity.io.model; -import org.jiemamy.entity.io.desc.AssociationType; +import org.jiemamy.entity.io.gen.desc.AssociationType; /** * 関連モデル。 Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModelFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModelFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AssociationModelFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -17,7 +17,7 @@ */ package org.jiemamy.entity.io.model; -import org.jiemamy.entity.io.desc.AssociationDesc; +import org.jiemamy.entity.io.gen.desc.AssociationDesc; /** * {@link AssociationModel}のファクトリインターフェイス。 Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AttributeModelFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AttributeModelFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/AttributeModelFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -15,7 +15,7 @@ */ package org.jiemamy.entity.io.model; -import org.jiemamy.entity.io.desc.AttributeDesc; +import org.jiemamy.entity.io.gen.desc.AttributeDesc; /** * {@link AttributeModel 属性モデル}のファクトリインターフェイス。 Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/CompositeUniqueConstraintModelFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/CompositeUniqueConstraintModelFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/CompositeUniqueConstraintModelFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -17,7 +17,7 @@ */ package org.jiemamy.entity.io.model; -import org.jiemamy.entity.io.desc.CompositeUniqueConstraintDesc; +import org.jiemamy.entity.io.gen.desc.CompositeUniqueConstraintDesc; /** * {@link CompositeUniqueConstraintModel}のファクトリインターフェイス。 Modified: leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/EntityModelFactory.java =================================================================== --- leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/EntityModelFactory.java 2009-04-13 09:50:49 UTC (rev 3250) +++ leto/jiemamy-entity-io/trunk/src/main/java/org/jiemamy/entity/io/model/EntityModelFactory.java 2009-04-13 09:53:04 UTC (rev 3251) @@ -17,7 +17,7 @@ */ package org.jiemamy.entity.io.model; -import org.jiemamy.entity.io.desc.EntityDesc; +import org.jiemamy.entity.io.gen.desc.EntityDesc; /** * {@link EntityModel エンティティクラスのモデル}のファクトリインターフェイス。