[Jiemamy-notify] commit [2234] DataTypeResolver実装。 /

Back to archive index

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>


Jiemamy-notify メーリングリストの案内
Back to archive index