svnno****@sourc*****
svnno****@sourc*****
2008年 12月 10日 (水) 22:15:40 JST
Revision: 2234 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2234 Author: daisuke_m Date: 2008-12-10 22:15:40 +0900 (Wed, 10 Dec 2008) Log Message: ----------- DataTypeResolver実装。 / refactor Modified Paths: -------------- artemis/trunk/org.jiemamy.core/META-INF/MANIFEST.MF artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/ColumnModelAccessor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/DomainModelAccessor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/DomainModelImpl.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/S2FactoryStrategy.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/AbstractDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BigIntegerDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BlobDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/CharacterDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/ClobDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/IntegerDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/NumericDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/RealDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/TimestampDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/VarcharDataTypeDescriptor.java artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/AbstractDialect.java artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/general/GeneralDialect.java artemis/trunk/org.jiemamy.dialect/src/test/java/org/jiemamy/dialect/AbstractDialectTest.java artemis/trunk/org.jiemamy.dialect.mysql/src/main/java/org/jiemamy/dialect/mysql/datatype/IntegerDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigIntegerDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigSerialDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BitDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BlobDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BooleanDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/CharacterDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DateDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DecimalDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DoubleDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/FloatDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntegerDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntervalDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/MoneyDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/NumericDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/RealDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SerialDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SmallIntegerDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TextDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimeDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimestampDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarbitDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarcharDataType.java artemis/trunk/org.jiemamy.dialect.postgresql/src/test/java/org/jiemamy/dialect/postgresql/PostgresqlDialectTest.java artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/model/DomainCommand.java artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/element/DataTypeXmlElement.java artemis/trunk/org.jiemamy.serializer/src/test/java/org/jiemamy/serializer/ModelInputStreamTest.java artemis/trunk/org.jiemamy.serializer/src/test/resources/sample.xml zeus/trunk/org.jiemamy.spec.core/META-INF/MANIFEST.MF zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeImplementationException.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/Dialect.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/ColumnModel.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/DomainModel.java zeus/trunk/org.jiemamy.spec.core/src/main/resources/jiemamy-core.xsd Added Paths: ----------- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/DataTypeResolverImpl.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeResolverException.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/DataTypeResolver.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/MappingInfo.java Removed Paths: ------------- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/mapping/ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/parser/ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeMappingException.java zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/mapping/ -------------- next part -------------- Modified: artemis/trunk/org.jiemamy.core/META-INF/MANIFEST.MF =================================================================== --- artemis/trunk/org.jiemamy.core/META-INF/MANIFEST.MF 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/META-INF/MANIFEST.MF 2008-12-10 13:15:40 UTC (rev 2234) @@ -168,7 +168,6 @@ org.easymock.internal.matchers, org.jiemamy.core, org.jiemamy.core.extension.dialect, - org.jiemamy.core.extension.dialect.mapping, org.jiemamy.core.extension.dialect.validator, org.jiemamy.internal, org.jiemamy.internal.accessor, Copied: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/DataTypeResolverImpl.java (from rev 2232, artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/mapping/DataTypeResolverImpl.java) =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/DataTypeResolverImpl.java (rev 0) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/DataTypeResolverImpl.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -0,0 +1,110 @@ +/* + * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. + * Created on 2008/08/29 + * + * 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.core.extension.dialect; + +import java.util.List; + +import org.seasar.framework.util.tiger.CollectionsUtil; + +import org.jiemamy.exception.DataTypeNotFoundException; +import org.jiemamy.exception.IllegalDataTypeImplementationException; +import org.jiemamy.exception.IllegalDialectImplementationException; +import org.jiemamy.exception.UnexpectedConditionError; +import org.jiemamy.extension.dialect.DataTypeResolver; +import org.jiemamy.extension.dialect.Dialect; +import org.jiemamy.extension.dialect.MappingInfo; +import org.jiemamy.model.datatype.DataType; +import org.jiemamy.model.datatype.DataTypeDescriptor; +import org.jiemamy.utils.JmStringUtil; + +/** + * 特殊SQL方言における、データ型同士のマッピング情報を保持するクラス。 + * @author daisuke + */ +public class DataTypeResolverImpl implements DataTypeResolver { + + private List<Class<? extends DataType>> allModelingDataTypes = CollectionsUtil.newArrayList(); + + private final Dialect dialect; + + + /** + * コンストラクタ。 + * @param dialect + * @category instance creation + */ + public DataTypeResolverImpl(Dialect dialect) { + this.dialect = dialect; + } + + /** + * {@inheritDoc} + */ + public List<Class<? extends DataType>> getAllModelingDataTypes() { + return allModelingDataTypes; + } + + /** + * {@inheritDoc} + */ + public void register(Class<? extends DataType> clazz) { + allModelingDataTypes.add(clazz); + } + + /** + * {@inheritDoc} + */ + public DataType resolveDataType(DataTypeDescriptor dataTypeDescriptor) { + for (Class<? extends DataType> clazz : allModelingDataTypes) { + if (clazz.getAnnotation(MappingInfo.class).descriptor() == dataTypeDescriptor.getClass()) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalDataTypeImplementationException(clazz, e); + } catch (IllegalAccessException e) { + throw new IllegalDataTypeImplementationException(clazz, e); + } + } + } + throw new IllegalDialectImplementationException("no suitable DataType: " + dataTypeDescriptor); + } + + /** + * {@inheritDoc} + */ + public DataTypeDescriptor resolveDataTypeDescriptor(String typeName) throws DataTypeNotFoundException { + for (Class<? extends DataType> clazz : allModelingDataTypes) { + MappingInfo annotation = clazz.getAnnotation(MappingInfo.class); + if (annotation.typeName().equalsIgnoreCase(typeName) + || JmStringUtil.containsIgnoreCase(annotation.alias(), typeName)) { + try { + return annotation.descriptor().newInstance(); + } catch (InstantiationException e) { + throw new UnexpectedConditionError( + "Illegal DataTypeDescriptor implementation (need default constructor): " + clazz, e); + } catch (IllegalAccessException e) { + throw new UnexpectedConditionError( + "Illegal DataTypeDescriptor implementation (need public constructor): " + clazz, e); + } + } + } + throw new DataTypeNotFoundException(dialect, typeName); + } + +} Property changes on: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/extension/dialect/DataTypeResolverImpl.java ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/ColumnModelAccessor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/ColumnModelAccessor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/ColumnModelAccessor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -39,7 +39,7 @@ /** * 型記述子を取得する。 - * @return 型 + * @return 型記述子 */ DataTypeDescriptor getDataTypeDescriptor(); @@ -94,9 +94,9 @@ /** * 型記述子を設定する。 - * @param dataType 型 + * @param dataTypeDescriptor 型記述子 */ - void setDataTypeDescriptor(DataTypeDescriptor dataType); + void setDataTypeDescriptor(DataTypeDescriptor dataTypeDescriptor); /** * デフォルト値を設定する。 Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/DomainModelAccessor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/DomainModelAccessor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/internal/accessor/DomainModelAccessor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -85,9 +85,9 @@ /** * ドメインとして定義された型記述子を設定する。 - * @param dataType ドメインとして定義された型記述子 + * @param dataTypeDescriptor ドメインとして定義された型記述子 */ - void setDataTypeDescriptor(DataTypeDescriptor dataType); + void setDataTypeDescriptor(DataTypeDescriptor dataTypeDescriptor); /** * デフォルト値を設定する。 Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/DomainModelImpl.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/DomainModelImpl.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/DomainModelImpl.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -220,8 +220,8 @@ /** * {@inheritDoc} */ - public void setDataTypeDescriptor(DataTypeDescriptor dataType) { - dataTypeDescriptor = dataType; + public void setDataTypeDescriptor(DataTypeDescriptor dataTypeDescriptor) { + this.dataTypeDescriptor = dataTypeDescriptor; } /** Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/S2FactoryStrategy.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/S2FactoryStrategy.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/S2FactoryStrategy.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -84,7 +84,7 @@ } catch (ComponentNotFoundRuntimeException e) { throw new IllegalArgumentException(e); } catch (Exception e) { - throw new UnexpectedConditionError("Seasar2 Component definition may be invalid.", e); + throw new UnexpectedConditionError("Seasar2 component definition may be invalid.", e); } } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/AbstractDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/AbstractDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/AbstractDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -26,7 +26,7 @@ * TODO for daisuke * @author daisuke */ -public class AbstractDataTypeDescriptor implements DataTypeDescriptor { +public abstract class AbstractDataTypeDescriptor implements DataTypeDescriptor { private AdapterManager adapterManager = new AdapterManager(); Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BigIntegerDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BigIntegerDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BigIntegerDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,12 +18,11 @@ */ package org.jiemamy.model.datatype; - /** * BIGINTEGER型の汎用DataTypeクラス。 * @author daisuke */ @SuppressWarnings("serial") -public class BigIntegerDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class BigIntegerDataTypeDescriptor extends AbstractDataTypeDescriptor { } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BlobDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BlobDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/BlobDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -23,6 +23,6 @@ * @author daisuke */ @SuppressWarnings("serial") -public class BlobDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class BlobDataTypeDescriptor extends AbstractDataTypeDescriptor { } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/CharacterDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/CharacterDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/CharacterDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -25,7 +25,7 @@ * @author daisuke */ @SuppressWarnings("serial") -public class CharacterDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class CharacterDataTypeDescriptor extends AbstractDataTypeDescriptor { /** * コンストラクタ。 Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/ClobDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/ClobDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/ClobDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,12 +18,11 @@ */ package org.jiemamy.model.datatype; - /** * CLOB型の汎用DataTypeクラス。 * @author daisuke */ @SuppressWarnings("serial") -public class ClobDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class ClobDataTypeDescriptor extends AbstractDataTypeDescriptor { } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/IntegerDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/IntegerDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/IntegerDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -23,6 +23,6 @@ * @author daisuke */ @SuppressWarnings("serial") -public class IntegerDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class IntegerDataTypeDescriptor extends AbstractDataTypeDescriptor { } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/NumericDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/NumericDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/NumericDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -25,7 +25,7 @@ * @author daisuke */ @SuppressWarnings("serial") -public class NumericDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class NumericDataTypeDescriptor extends AbstractDataTypeDescriptor { /** * コンストラクタ。 Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/RealDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/RealDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/RealDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,12 +18,11 @@ */ package org.jiemamy.model.datatype; - /** * REAL型の汎用DataTypeクラス。 * @author daisuke */ @SuppressWarnings("serial") -public class RealDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class RealDataTypeDescriptor extends AbstractDataTypeDescriptor { } Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/TimestampDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/TimestampDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/TimestampDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -25,7 +25,7 @@ * @author daisuke */ @SuppressWarnings("serial") -public class TimestampDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class TimestampDataTypeDescriptor extends AbstractDataTypeDescriptor { /** * コンストラクタ。 Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/VarcharDataTypeDescriptor.java =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/VarcharDataTypeDescriptor.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/model/datatype/VarcharDataTypeDescriptor.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -25,7 +25,7 @@ * @author daisuke */ @SuppressWarnings("serial") -public class VarcharDataTypeDescriptor extends AbstractDataTypeDescriptor implements DataTypeDescriptor { +public class VarcharDataTypeDescriptor extends AbstractDataTypeDescriptor { /** * コンストラクタ。 Modified: artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon =================================================================== --- artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.core/src/main/resources/jiemamy-core.dicon 2008-12-10 13:15:40 UTC (rev 2234) @@ -27,7 +27,9 @@ <arg>uuid</arg> </component> <component class="org.jiemamy.model.dataset.InsertDataSetModelImpl" instance="prototype"/> - <component class="org.jiemamy.model.dataset.RecordModelImpl" instance="prototype"/> + <component class="org.jiemamy.model.dataset.RecordModelImpl" instance="prototype"> + <arg>uuid</arg> + </component> <component class="org.jiemamy.model.node.TableModelImpl" instance="prototype"> <arg>uuid</arg> </component> Modified: artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/AbstractDialect.java =================================================================== --- artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/AbstractDialect.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/AbstractDialect.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -28,16 +28,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.jiemamy.core.extension.dialect.DataTypeResolverImpl; import org.jiemamy.core.extension.dialect.DefaultConnectionAdvisor; -import org.jiemamy.core.extension.dialect.mapping.DataTypeResolverImpl; import org.jiemamy.core.extension.dialect.validator.DefaultIdentifierValidator; import org.jiemamy.exception.DataTypeNotFoundException; -import org.jiemamy.exception.IllegalDataTypeMappingException; +import org.jiemamy.exception.IllegalDataTypeResolverException; import org.jiemamy.extension.dialect.ConnectionAdvisor; +import org.jiemamy.extension.dialect.DataTypeResolver; import org.jiemamy.extension.dialect.Dialect; import org.jiemamy.extension.dialect.IdentifierValidator; import org.jiemamy.extension.dialect.Quoter; -import org.jiemamy.extension.dialect.mapping.DataTypeResolver; import org.jiemamy.model.ColumnModel; import org.jiemamy.model.FactoryStrategy; import org.jiemamy.model.JiemamyModelFactory; @@ -64,7 +64,7 @@ private static Logger logger = LoggerFactory.getLogger(AbstractDialect.class); /** {@link DataTypeResolver} */ - private DataTypeResolver dataTypeResolver = new DataTypeResolverImpl(); + private DataTypeResolver dataTypeResolver = new DataTypeResolverImpl(this); /** {@link Quoter} */ private Quoter quoter = new DefaultQuoter(); @@ -252,7 +252,7 @@ finalResult.add(column); } catch (DataTypeNotFoundException e) { - throw new IllegalDataTypeMappingException(e); + throw new IllegalDataTypeResolverException(e); } return null; } Modified: artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/general/GeneralDialect.java =================================================================== --- artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/general/GeneralDialect.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect/src/main/java/org/jiemamy/dialect/general/GeneralDialect.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -22,13 +22,13 @@ import java.sql.ResultSet; import java.util.List; +import org.jiemamy.core.extension.dialect.DataTypeResolverImpl; import org.jiemamy.core.extension.dialect.DefaultConnectionAdvisor; -import org.jiemamy.core.extension.dialect.mapping.DataTypeResolverImpl; import org.jiemamy.extension.dialect.ConnectionAdvisor; +import org.jiemamy.extension.dialect.DataTypeResolver; import org.jiemamy.extension.dialect.Dialect; import org.jiemamy.extension.dialect.IdentifierValidator; import org.jiemamy.extension.dialect.Quoter; -import org.jiemamy.extension.dialect.mapping.DataTypeResolver; import org.jiemamy.model.FactoryStrategy; import org.jiemamy.model.RootModel; import org.jiemamy.model.node.AbstractEntityModel; @@ -51,7 +51,7 @@ }; - private DataTypeResolver dataTypeResolver = new DataTypeResolverImpl(); + private DataTypeResolver dataTypeResolver = new DataTypeResolverImpl(this); private IdentifierValidator validator = new GenericValidator(); Modified: artemis/trunk/org.jiemamy.dialect/src/test/java/org/jiemamy/dialect/AbstractDialectTest.java =================================================================== --- artemis/trunk/org.jiemamy.dialect/src/test/java/org/jiemamy/dialect/AbstractDialectTest.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect/src/test/java/org/jiemamy/dialect/AbstractDialectTest.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -127,7 +127,6 @@ Connection connection = dataSource.getConnection(); assertThat(connection, is(notNullValue())); - // そりゃそうだ。DialectがAbstractだから、IllegalDataTypeMappingExceptionが飛ぶ。 JiemamyModelFactory.init(new S2FactoryStrategy("jiemamy-core.dicon")); RootModel rootModel = JiemamyModelFactory.newRootModel(); rootModel.setDialect(dialect); Modified: artemis/trunk/org.jiemamy.dialect.mysql/src/main/java/org/jiemamy/dialect/mysql/datatype/IntegerDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.mysql/src/main/java/org/jiemamy/dialect/mysql/datatype/IntegerDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.mysql/src/main/java/org/jiemamy/dialect/mysql/datatype/IntegerDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.mysql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigIntegerDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigIntegerDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigIntegerDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.BigIntegerDataTypeDescriptor; import org.jiemamy.model.datatype.DataType; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigSerialDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigSerialDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BigSerialDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.BigIntegerDataTypeDescriptor; import org.jiemamy.model.datatype.DataType; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BitDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BitDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BitDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BlobDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BlobDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BlobDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.BlobDataTypeDescriptor; import org.jiemamy.model.datatype.DataType; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BooleanDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BooleanDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/BooleanDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/CharacterDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/CharacterDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/CharacterDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.CharacterDataTypeDescriptor; import org.jiemamy.model.datatype.DataType; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DateDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DateDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DateDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.TimestampDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DecimalDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DecimalDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DecimalDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.NumericDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DoubleDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DoubleDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/DoubleDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.RealDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/FloatDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/FloatDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/FloatDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.RealDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntegerDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntegerDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntegerDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntervalDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntervalDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/IntervalDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/MoneyDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/MoneyDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/MoneyDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/NumericDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/NumericDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/NumericDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.NumericDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/RealDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/RealDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/RealDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.RealDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SerialDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SerialDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SerialDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SmallIntegerDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SmallIntegerDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/SmallIntegerDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TextDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TextDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TextDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.ClobDataTypeDescriptor; import org.jiemamy.model.datatype.DataType; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimeDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimeDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimeDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.TimestampDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimestampDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimestampDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/TimestampDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.TimestampDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarbitDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarbitDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarbitDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarcharDataType.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarcharDataType.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/main/java/org/jiemamy/dialect/postgresql/datatype/VarcharDataType.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,7 +18,7 @@ */ package org.jiemamy.dialect.postgresql.datatype; -import org.jiemamy.extension.dialect.mapping.MappingInfo; +import org.jiemamy.extension.dialect.MappingInfo; import org.jiemamy.model.datatype.AbstractDataType; import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.VarcharDataTypeDescriptor; Modified: artemis/trunk/org.jiemamy.dialect.postgresql/src/test/java/org/jiemamy/dialect/postgresql/PostgresqlDialectTest.java =================================================================== --- artemis/trunk/org.jiemamy.dialect.postgresql/src/test/java/org/jiemamy/dialect/postgresql/PostgresqlDialectTest.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.dialect.postgresql/src/test/java/org/jiemamy/dialect/postgresql/PostgresqlDialectTest.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -33,10 +33,9 @@ import org.jiemamy.dialect.postgresql.datatype.IntegerDataType; import org.jiemamy.dialect.postgresql.datatype.VarcharDataType; import org.jiemamy.exception.DataTypeNotFoundException; +import org.jiemamy.extension.dialect.DataTypeResolver; import org.jiemamy.extension.dialect.Dialect; -import org.jiemamy.extension.dialect.mapping.DataTypeResolver; import org.jiemamy.model.datatype.DataType; -import org.jiemamy.model.datatype.DataTypeDescriptor; import org.jiemamy.model.datatype.IntegerDataTypeDescriptor; import org.jiemamy.model.datatype.VarcharDataTypeDescriptor; import org.jiemamy.model.datatype.adapter.PrecisionedDataTypeAdapter; @@ -135,22 +134,17 @@ */ @Test public void test05_データ型のマッピングにより_相互に変換が行える() throws Exception { - DataTypeResolver dataTypeMapping = dialect.getDataTypeResolver(); - assertThat(dataTypeMapping.resolveDataTypeDescriptor("INT"), instanceOf(IntegerDataTypeDescriptor.class)); - assertThat(dataTypeMapping.resolveDataTypeDescriptor("INT4"), instanceOf(IntegerDataTypeDescriptor.class)); - assertThat(dataTypeMapping.resolveDataTypeDescriptor("INTEGER"), instanceOf(IntegerDataTypeDescriptor.class)); - assertThat(dataTypeMapping.resolveDataTypeDescriptor("VARCHAR"), instanceOf(VarcharDataTypeDescriptor.class)); + DataTypeResolver resolver = dialect.getDataTypeResolver(); + assertThat(resolver.resolveDataTypeDescriptor("INT"), instanceOf(IntegerDataTypeDescriptor.class)); + assertThat(resolver.resolveDataTypeDescriptor("INT4"), instanceOf(IntegerDataTypeDescriptor.class)); + assertThat(resolver.resolveDataTypeDescriptor("INTEGER"), instanceOf(IntegerDataTypeDescriptor.class)); + assertThat(resolver.resolveDataTypeDescriptor("VARCHAR"), instanceOf(VarcharDataTypeDescriptor.class)); try { - assertThat(dataTypeMapping.resolveDataTypeDescriptor("HOGE"), instanceOf(VarcharDataTypeDescriptor.class)); + assertThat(resolver.resolveDataTypeDescriptor("HOGE"), instanceOf(VarcharDataTypeDescriptor.class)); fail(); } catch (DataTypeNotFoundException e) { } - assertThat(dataTypeMapping.resolveDataType(new IntegerDataTypeDescriptor()), instanceOf(IntegerDataType.class)); - - DataType dataType = new VarcharDataType(); - dataType.getAdapter(SizedDataTypeAdapter.class).setSize(923); - DataTypeDescriptor desc = dataTypeMapping.resolveDataTypeDescriptor(dataType); - assertThat(desc.getAdapter(SizedDataTypeAdapter.class).getSize(), is(923)); + assertThat(resolver.resolveDataType(new IntegerDataTypeDescriptor()), instanceOf(IntegerDataType.class)); } } Modified: artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/model/DomainCommand.java =================================================================== --- artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/model/DomainCommand.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/model/DomainCommand.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -22,7 +22,7 @@ import org.xml.sax.Attributes; -import org.jiemamy.exception.IllegalDataTypeImplementationException; +import org.jiemamy.exception.UnexpectedConditionError; import org.jiemamy.model.constraint.Constraint; import org.jiemamy.model.datatype.DataTypeDescriptor; @@ -108,9 +108,11 @@ DataTypeDescriptor dataType = DataTypeDescriptor.class.cast(clazz.newInstance()); modelInfo.getDomainModel().setDataTypeDescriptor(DataTypeDescriptor.class.cast(dataType)); } catch (InstantiationException e) { - throw new IllegalDataTypeImplementationException(clazz, e); + throw new UnexpectedConditionError( + "Illegal DataTypeDescriptor implementation (need default constructor): " + clazz, e); } catch (IllegalAccessException e) { - throw new IllegalDataTypeImplementationException(clazz, e); + throw new UnexpectedConditionError( + "Illegal DataTypeDescriptor implementation (need public constructor): " + clazz, e); } } Modified: artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/element/DataTypeXmlElement.java =================================================================== --- artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/element/DataTypeXmlElement.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/element/DataTypeXmlElement.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -19,6 +19,7 @@ package org.jiemamy.serializer.element; import org.jiemamy.model.DomainModel; +import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.DataTypeAdapter; import org.jiemamy.model.datatype.DataTypeDescriptor; import org.jiemamy.serializer.Namespaces; @@ -31,11 +32,11 @@ /** * コンストラクタ。 - * @param dataType + * @param dataTypeDescriptor * @category instance creation */ - public DataTypeXmlElement(DataTypeDescriptor dataType) { - this(dataType, false); + public DataTypeXmlElement(DataTypeDescriptor dataTypeDescriptor) { + this(dataTypeDescriptor, false); } /** @@ -44,11 +45,12 @@ * @param byReference * @category instance creation */ - public DataTypeXmlElement(DataTypeDescriptor dataType, boolean byReference) { - super(Namespaces.CORE, "dataType", dataType, byReference || dataType instanceof DomainModel, - dataType instanceof DomainModel == false); + public DataTypeXmlElement(DataTypeDescriptor dataTypeDescriptor, boolean byReference) { + super(Namespaces.CORE, "dataType", dataTypeDescriptor, + byReference || dataTypeDescriptor instanceof DomainModel, + dataTypeDescriptor instanceof DomainModel == false); - for (Object adapter : dataType.getAdapters()) { + for (Object adapter : dataTypeDescriptor.getAdapters()) { if (adapter instanceof DataTypeAdapter) { DataTypeAdapter dataTypeAdapter = (DataTypeAdapter) adapter; queue.add(new AdapterXmlElement(dataTypeAdapter)); Modified: artemis/trunk/org.jiemamy.serializer/src/test/java/org/jiemamy/serializer/ModelInputStreamTest.java =================================================================== --- artemis/trunk/org.jiemamy.serializer/src/test/java/org/jiemamy/serializer/ModelInputStreamTest.java 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.serializer/src/test/java/org/jiemamy/serializer/ModelInputStreamTest.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -135,7 +135,7 @@ sbExpected.appendln(" <column id=\"" + t.getColumns().get(0).getId().toString() + "\">"); sbExpected.appendln(" <name>col1</name>"); sbExpected.appendln(" <logicalName/>"); - sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.IntegerDataTypeMock\"/>"); + sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.IntegerDataTypeDescriptor\"/>"); sbExpected.appendln(" <defaultValue/>"); sbExpected.appendln(" <constraints/>"); sbExpected.appendln(" <simpleIndex>false</simpleIndex>"); @@ -147,7 +147,7 @@ sbExpected.appendln(" <column id=\"" + t.getColumns().get(1).getId().toString() + "\">"); sbExpected.appendln(" <name>col2</name>"); sbExpected.appendln(" <logicalName/>"); - sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.VarcharDataTypeMock\">"); + sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.VarcharDataTypeDescriptor\">"); sbExpected.appendln(" <adapter class=\"org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter\">"); sbExpected.appendln(" <property name=\"size\">16</property>"); sbExpected.appendln(" </adapter>"); @@ -163,7 +163,7 @@ sbExpected.appendln(" <column id=\"" + t.getColumns().get(2).getId().toString() + "\">"); sbExpected.appendln(" <name>col3</name>"); sbExpected.appendln(" <logicalName/>"); - sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.TimestampDataTypeMock\">"); + sbExpected.appendln(" <dataType class=\"org.jiemamy.model.datatype.TimestampDataTypeDescriptor\">"); sbExpected .appendln(" <adapter class=\"org.jiemamy.model.datatype.adapter.TimezonedDataTypeAdapter\">"); sbExpected.appendln(" <property name=\"withTimezone\">false</property>"); Modified: artemis/trunk/org.jiemamy.serializer/src/test/resources/sample.xml =================================================================== --- artemis/trunk/org.jiemamy.serializer/src/test/resources/sample.xml 2008-12-10 12:26:18 UTC (rev 2233) +++ artemis/trunk/org.jiemamy.serializer/src/test/resources/sample.xml 2008-12-10 13:15:40 UTC (rev 2234) @@ -16,7 +16,7 @@ <domain id="2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"> <name>ID</name> <logicalName/> - <dataType class="org.jiemamy.model.datatype.IntegerDataTypeMock"/> + <dataTypeDescriptor class="org.jiemamy.model.datatype.IntegerDataTypeDescriptor"/> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> @@ -34,11 +34,11 @@ <domain id="62f1e6ec-e6aa-4d52-a6c3-27dac086f2d7"> <name>NAME</name> <logicalName/> - <dataType class="org.jiemamy.model.datatype.VarcharDataTypeMock"> + <dataTypeDescriptor class="org.jiemamy.model.datatype.VarcharDataTypeDescriptor"> <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> <size>32</size> </adapter> - </dataType> + </dataTypeDescriptor> <defaultValue/> <constraints/> <simpleIndex>false</simpleIndex> @@ -62,7 +62,7 @@ <column id="c7ed225d-92a6-4cc2-90de-60531804464e"> <name>ID</name> <logicalName>部署ID</logicalName> - <dataType ref="2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"/> + <dataTypeDescriptor ref="2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"/> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.PrimaryKeyConstraintModelImpl"> @@ -84,7 +84,7 @@ <column id="2d951389-6bc7-49d7-8631-1d26fe17047e"> <name>DEPT_NO</name> <logicalName>部署番号</logicalName> - <dataType class="org.jiemamy.model.datatype.IntegerDataTypeMock"/> + <dataTypeDescriptor class="org.jiemamy.model.datatype.IntegerDataTypeDescriptor"/> <defaultValue/> <constraints/> <simpleIndex>false</simpleIndex> @@ -96,11 +96,11 @@ <column id="1fcd63d3-974e-4d2e-a0d8-3b9c233104d9"> <name>DEPT_NAME</name> <logicalName>部署名</logicalName> - <dataType class="org.jiemamy.model.datatype.VarcharDataTypeMock"> + <dataTypeDescriptor class="org.jiemamy.model.datatype.VarcharDataTypeDescriptor"> <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> <size>20</size> </adapter> - </dataType> + </dataTypeDescriptor> <defaultValue/> <constraints/> <simpleIndex>false</simpleIndex> @@ -112,11 +112,11 @@ <column id="7bf79e76-07b8-43b6-a993-b8ef374a31f5"> <name>LOC</name> <logicalName>ロケーション</logicalName> - <dataType class="org.jiemamy.model.datatype.VarcharDataTypeMock"> + <dataTypeDescriptor class="org.jiemamy.model.datatype.VarcharDataTypeDescriptor"> <adapter class="org.jiemamy.model.datatype.adapter.SizedDataTypeAdapter"> <size>20</size> </adapter> - </dataType> + </dataTypeDescriptor> <defaultValue>secret</defaultValue> <constraints/> <simpleIndex>false</simpleIndex> @@ -144,7 +144,7 @@ <column id="44c8e93d-b7ad-46cc-9b29-88c3a7d6c33e"> <name>ID</name> <logicalName>従業員ID</logicalName> - <dataType ref="2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"/> + <dataTypeDescriptor ref="2eec0aa0-5122-4eb7-833d-9f5a43e7abe9"/> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.PrimaryKeyConstraintModelImpl"> @@ -166,7 +166,7 @@ <column id="248a429b-2159-4ebd-a791-eee42a059374"> <name>EMP_NO</name> <logicalName>従業員番号</logicalName> - <dataType class="org.jiemamy.model.datatype.IntegerDataTypeMock"/> + <dataTypeDescriptor class="org.jiemamy.model.datatype.IntegerDataTypeDescriptor"/> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> @@ -181,7 +181,7 @@ </column> <column id="0e51b6df-43ab-408c-90ef-de13c6aab881"> <name>EMP_NAME</name> - <dataType ref="62f1e6ec-e6aa-4d52-a6c3-27dac086f2d7"/> + <dataTypeDescriptor ref="62f1e6ec-e6aa-4d52-a6c3-27dac086f2d7"/> <defaultValue>no name</defaultValue> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> @@ -197,7 +197,7 @@ <column id="3d21a85a-72de-41b3-99dd-f4cb94e58d84"> <name>MGR_ID</name> <logicalName>上司ID</logicalName> - <dataType class="org.jiemamy.model.datatype.IntegerDataTypeMock"/> + <dataTypeDescriptor class="org.jiemamy.model.datatype.IntegerDataTypeDescriptor"/> <defaultValue/> <constraints/> <simpleIndex>false</simpleIndex> @@ -209,11 +209,11 @@ <column id="f0b57eed-98ab-4c21-9855-218c592814dc"> <name>HIREDATE</name> <logicalName/> - <dataType class="org.jiemamy.model.datatype.TimestampDataTypeMock"> + <dataTypeDescriptor class="org.jiemamy.model.datatype.TimestampDataTypeDescriptor"> <adapter class="org.jiemamy.model.datatype.adapter.TimezonedDataTypeAdapter"> <timezone>false</timezone> </adapter> - </dataType> + </dataTypeDescriptor> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> @@ -229,12 +229,12 @@ <column id="80786549-dc2c-4c1c-bcbd-9f6fdec911d2"> <name>SAL</name> <logicalName/> - <dataType class="org.jiemamy.model.datatype.NumericDataTypeMock"> + <dataTypeDescriptor class="org.jiemamy.model.datatype.NumericDataTypeDescriptor"> <adapter class="org.jiemamy.model.datatype.adapter.PrecisionedDataTypeAdapter"> <precision>7</precision> <scale>2</scale> </adapter> - </dataType> + </dataTypeDescriptor> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> @@ -250,7 +250,7 @@ <column id="4ae69b7a-7a0e-422a-89dc-0f0cff77565b"> <name>DEPT_ID</name> <logicalName/> - <dataType class="org.jiemamy.model.datatype.IntegerDataTypeMock"/> + <dataTypeDescriptor class="org.jiemamy.model.datatype.IntegerDataTypeDescriptor"/> <defaultValue/> <constraints> <constraint class="org.jiemamy.model.constraint.NotNullConstraintModelImpl"> Modified: zeus/trunk/org.jiemamy.spec.core/META-INF/MANIFEST.MF =================================================================== --- zeus/trunk/org.jiemamy.spec.core/META-INF/MANIFEST.MF 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/META-INF/MANIFEST.MF 2008-12-10 13:15:40 UTC (rev 2234) @@ -12,7 +12,6 @@ org.jiemamy.extension, org.jiemamy.extension.composer, org.jiemamy.extension.dialect, - org.jiemamy.extension.dialect.mapping, org.jiemamy.model, org.jiemamy.model.connection, org.jiemamy.model.constraint, Modified: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeImplementationException.java =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeImplementationException.java 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeImplementationException.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -18,6 +18,7 @@ */ package org.jiemamy.exception; +import org.jiemamy.model.datatype.DataType; import org.jiemamy.model.datatype.DataTypeDescriptor; /** @@ -33,17 +34,8 @@ * @param cause * @category instance creation */ - public IllegalDataTypeImplementationException(Class<? extends DataTypeDescriptor> clazz, Exception cause) { + public IllegalDataTypeImplementationException(Class<? extends DataType> clazz, Exception cause) { super(clazz, cause); } - /** - * コンストラクタ。 - * @param dataType - * @param e - * @category instance creation - */ - public IllegalDataTypeImplementationException(DataTypeDescriptor dataType, InstantiationException e) { - super(dataType, e); - } } Deleted: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeMappingException.java =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeMappingException.java 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeMappingException.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -1,48 +0,0 @@ -/* - * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. - * Created on 2008/07/20 - * - * 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.exception; - -import org.jiemamy.extension.dialect.mapping.DataTypeResolver; -import org.jiemamy.model.datatype.DataType; - -/** - * Dialectコンポーネントによって{@link DataTypeResolver}が不正に設定されている場合にスローされる例外。 - * @author daisuke - */ - @ SuppressWarnings("serial") -public class IllegalDataTypeMappingException extends IllegalImplementationException { - - /** - * コンストラクタ。 - * @param dataTypeClass キー - * @category instance creation - */ - public IllegalDataTypeMappingException(Class<? extends DataType> dataTypeClass) { - super(dataTypeClass, "DataType was not found for key [" + dataTypeClass.getName() + "]"); - } - - /** - * コンストラクタ。 - * @param e - * @category instance creation - */ - public IllegalDataTypeMappingException(DataTypeNotFoundException e) { - super(e); - } -} Copied: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeResolverException.java (from rev 2232, zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeMappingException.java) =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeResolverException.java (rev 0) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeResolverException.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -0,0 +1,48 @@ +/* + * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. + * Created on 2008/07/20 + * + * 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.exception; + +import org.jiemamy.extension.dialect.DataTypeResolver; +import org.jiemamy.model.datatype.DataType; + +/** + * Dialectコンポーネントによって{@link DataTypeResolver}が不正に設定されている場合にスローされる例外。 + * @author daisuke + */ + @ SuppressWarnings("serial") +public class IllegalDataTypeResolverException extends IllegalImplementationException { + + /** + * コンストラクタ。 + * @param dataTypeClass キー + * @category instance creation + */ + public IllegalDataTypeResolverException(Class<? extends DataType> dataTypeClass) { + super(dataTypeClass, "DataType was not found for key [" + dataTypeClass.getName() + "]"); + } + + /** + * コンストラクタ。 + * @param e + * @category instance creation + */ + public IllegalDataTypeResolverException(DataTypeNotFoundException e) { + super(e); + } +} Property changes on: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/exception/IllegalDataTypeResolverException.java ___________________________________________________________________ Name: svn:mime-type + text/plain Copied: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/DataTypeResolver.java (from rev 2232, zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/mapping/DataTypeResolver.java) =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/DataTypeResolver.java (rev 0) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/DataTypeResolver.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -0,0 +1,61 @@ +/* + * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. + * Created on 2008/08/30 + * + * 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.extension.dialect; + +import java.util.List; + +import org.jiemamy.exception.DataTypeNotFoundException; +import org.jiemamy.model.datatype.DataType; +import org.jiemamy.model.datatype.DataTypeDescriptor; + +/** + * データ型同士の対応関係(マッピング)を表現するクラス。 + * @author daisuke + */ +public interface DataTypeResolver { + + /** + * 登録されたデータ型を全て取得する。 + * @return 登録されたデータ型のリスト + */ + List<Class<? extends DataType>> getAllModelingDataTypes(); + + /** + * TODO for daisuke + * @param clazz + */ + void register(Class<? extends DataType> clazz); + + /** + * 型記述子からデータ型を解決する。 + * @param dataTypeDescriptor 型記述子 + * @return 型名 + * @throws IllegalArgumentException 引数に{@code null}を与えた場合 + */ + DataType resolveDataType(DataTypeDescriptor dataTypeDescriptor); + + /** + * 型名から型記述子を解決する。 + * @param typeName 型名 + * @return 型記述子 + * @throws DataTypeNotFoundException 該当するデータ型が存在しない場合。 + * @throws UnsupportedOperationException + */ + DataTypeDescriptor resolveDataTypeDescriptor(String typeName) throws DataTypeNotFoundException; +} Property changes on: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/DataTypeResolver.java ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/Dialect.java =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/Dialect.java 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/Dialect.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -23,7 +23,6 @@ import java.sql.SQLException; import java.util.List; -import org.jiemamy.extension.dialect.mapping.DataTypeResolver; import org.jiemamy.model.FactoryStrategy; import org.jiemamy.model.RootModel; import org.jiemamy.model.node.AbstractEntityModel; Copied: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/MappingInfo.java (from rev 2232, zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/mapping/MappingInfo.java) =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/MappingInfo.java (rev 0) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/extension/dialect/MappingInfo.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -0,0 +1,44 @@ +/* + * Copyright 2007-2008 MIYAMOTO Daisuke, jiemamy.org and the Others. + * Created on 2008/08/27 + * + * 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.extension.dialect; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.jiemamy.model.datatype.DataTypeDescriptor; + +/** + * マッピング情報を指定するアノテーション。 + * @author daisuke + */ + @ Target(ElementType.TYPE) + @ Retention(RetentionPolicy.RUNTIME) +public @interface MappingInfo { + + /** エイリアス型名の配列 */ + String[] alias() default {}; + + /** 一般データ型のクラス */ + Class<? extends DataTypeDescriptor> descriptor(); + + /** 型名 */ + String typeName(); +} Modified: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/ColumnModel.java =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/ColumnModel.java 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/ColumnModel.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -107,9 +107,9 @@ /** * 型記述子を設定する。 - * @param dataType 型記述子 + * @param dataTypeDescriptor 型記述子 */ - void setDataTypeDescriptor(DataTypeDescriptor dataType); + void setDataTypeDescriptor(DataTypeDescriptor dataTypeDescriptor); /** * デフォルト値を設定する。 Modified: zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/DomainModel.java =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/DomainModel.java 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/java/org/jiemamy/model/DomainModel.java 2008-12-10 13:15:40 UTC (rev 2234) @@ -124,9 +124,9 @@ /** * ドメインとして定義された型記述子を設定する。 - * @param dataType ドメインとして定義された型記述子 + * @param dataTypeDescriptor ドメインとして定義された型記述子 */ - void setDataTypeDescriptor(DataTypeDescriptor dataType); + void setDataTypeDescriptor(DataTypeDescriptor dataTypeDescriptor); /** * デフォルト値を設定する。 Modified: zeus/trunk/org.jiemamy.spec.core/src/main/resources/jiemamy-core.xsd =================================================================== --- zeus/trunk/org.jiemamy.spec.core/src/main/resources/jiemamy-core.xsd 2008-12-10 12:26:18 UTC (rev 2233) +++ zeus/trunk/org.jiemamy.spec.core/src/main/resources/jiemamy-core.xsd 2008-12-10 13:15:40 UTC (rev 2234) @@ -75,7 +75,7 @@ <xsd:sequence> <xsd:element ref="name" /> <xsd:element ref="logicalName" minOccurs="0" /> - <xsd:element ref="dataType" /> + <xsd:element ref="dataTypeDescriptor" /> <xsd:element ref="defaultValue" minOccurs="0" /> <xsd:element ref="constraints" minOccurs="0" /> <xsd:element ref="simpleIndex" minOccurs="0" /> @@ -175,7 +175,7 @@ <xsd:sequence> <xsd:element ref="name" /> <xsd:element ref="logicalName" minOccurs="0" /> - <xsd:element ref="dataType" /> + <xsd:element ref="dataTypeDescriptor" /> <xsd:element ref="defaultValue" minOccurs="0" /> <xsd:element ref="constraints" minOccurs="0" /> <xsd:element ref="simpleIndex" minOccurs="0" /> @@ -276,7 +276,7 @@ </xsd:complexType> </xsd:element> - <xsd:element name="dataType"> + <xsd:element name="dataTypeDescriptor"> <xsd:annotation> <xsd:documentation source="description" xml:lang="en">data type</xsd:documentation> <xsd:documentation source="description" xml:lang="ja-JP">データ型を表す。</xsd:documentation>