[Jiemamy-notify:1612] commit [2817] テストコケ対応。論理演算間違ってた。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 3月 5日 (木) 21:46:17 JST


Revision: 2817
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2817
Author:   daisuke_m
Date:     2009-03-05 21:46:17 +0900 (Thu, 05 Mar 2009)

Log Message:
-----------
テストコケ対応。論理演算間違ってた。

Modified Paths:
--------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/ArtemisJiemamyFactory.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/AbstractJiemamyBuilder.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/ColumnBuilderImpl.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/TableBuilderImpl.java
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/builder/TableBuilderTest.java


-------------- next part --------------
Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/ArtemisJiemamyFactory.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/ArtemisJiemamyFactory.java	2009-03-05 10:14:43 UTC (rev 2816)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/ArtemisJiemamyFactory.java	2009-03-05 12:46:17 UTC (rev 2817)
@@ -39,7 +39,11 @@
 import org.jiemamy.serializer.JiemamyDomSerializer;
 import org.jiemamy.serializer.JiemamySerializer;
 import org.jiemamy.utils.ValidateUtil;
+import org.jiemamy.utils.builder.ColumnBuilder;
+import org.jiemamy.utils.builder.ColumnBuilderImpl;
 import org.jiemamy.utils.builder.JiemamyBuilder;
+import org.jiemamy.utils.builder.TableBuilder;
+import org.jiemamy.utils.builder.TableBuilderImpl;
 
 /**
  * {@link JiemamyFactory}のArtemis用実装。
@@ -104,7 +108,12 @@
 	public <M extends JiemamyElement, T extends JiemamyBuilder<M>>T newBuilder(Class<T> clazz) {
 		Validate.notNull(clazz);
 		checkInitialized();
-		T builder = new FactoryExtension<T>().newInstance(clazz, jiemamy);
+		T builder = null;
+		if (clazz == TableBuilder.class) {
+			builder = (T) new TableBuilderImpl(this);
+		} else if (clazz == ColumnBuilder.class) {
+			builder = (T) new ColumnBuilderImpl(this);
+		}
 		if (builder == null) {
 			throw new IllegalArgumentException();
 		}

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/AbstractJiemamyBuilder.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/AbstractJiemamyBuilder.java	2009-03-05 10:14:43 UTC (rev 2816)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/AbstractJiemamyBuilder.java	2009-03-05 12:46:17 UTC (rev 2817)
@@ -64,7 +64,7 @@
 			throw new IllegalStateException("This builder is already disposed.");
 		}
 		finished = true;
-		if (force == false || isComplete() == false) {
+		if (force == false && isComplete() == false) {
 			throw new IllegalStateException("Required operation is not performed.");
 		}
 		return model;

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/ColumnBuilderImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/ColumnBuilderImpl.java	2009-03-05 10:14:43 UTC (rev 2816)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/ColumnBuilderImpl.java	2009-03-05 12:46:17 UTC (rev 2817)
@@ -36,6 +36,15 @@
 	/**
 	 * インスタンスを生成する。
 	 * 
+	 * @param factory
+	 */
+	public ColumnBuilderImpl(JiemamyFactory factory) {
+		super(factory, ColumnModel.class);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
 	 * @param factory 
 	 * @param name カラム名
 	 * @param type 型記述子

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/TableBuilderImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/TableBuilderImpl.java	2009-03-05 10:14:43 UTC (rev 2816)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/utils/builder/TableBuilderImpl.java	2009-03-05 12:46:17 UTC (rev 2817)
@@ -37,6 +37,16 @@
 	 * インスタンスを生成する。
 	 * 
 	 * @param factory 
+	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
+	 */
+	public TableBuilderImpl(JiemamyFactory factory) {
+		super(factory, TableModel.class);
+	}
+	
+	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param factory 
 	 * @param name 
 	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
 	 */

Modified: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/builder/TableBuilderTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/builder/TableBuilderTest.java	2009-03-05 10:14:43 UTC (rev 2816)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/utils/builder/TableBuilderTest.java	2009-03-05 12:46:17 UTC (rev 2817)
@@ -18,6 +18,8 @@
  */
 package org.jiemamy.utils.builder;
 
+import static org.junit.Assert.fail;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -30,6 +32,7 @@
 import org.jiemamy.model.attribute.ColumnModel;
 import org.jiemamy.model.datatype.DataType;
 import org.jiemamy.model.datatype.DataTypeCategory;
+import org.jiemamy.model.entity.TableModel;
 
 /**
  * {@link TableBuilderImpl}のテストクラス。
@@ -86,16 +89,23 @@
 	}
 	
 	/**
-	 * ビルダのオートマトンっぷりを見てみる。
+	 * ビルダを使ってみる。
 	 * 
 	 * @throws Exception
 	 */
 	@Test
-	public void test01_ビルダのオートマトンっぷりを見てみる() throws Exception {
-//		TableModel table1 = factory.newBuilder(PrematureTableBuilder.class).setName("T_USER").addColumn(col1).build();
-//		TableModel table2 = factory.newBuilder(PrematureTableBuilder.class).addColumn(col2).setName("T_USER").build();
-////		TableModel table3 = factory.newBuilder(PrematureTableBuilder.class).addColumn(col3).build(); // コンパイルエラー
-//		logger.info(table1.toString());
-//		logger.info(table2.toString());
+	public void test01_ビルダを使ってみる() throws Exception {
+		TableModel table1 = factory.newBuilder(TableBuilder.class).setName("T_USER").addColumn(col1).build();
+		TableModel table2 = factory.newBuilder(TableBuilder.class).addColumn(col2).setName("T_USER").build();
+		try {
+			factory.newBuilder(TableBuilder.class).addColumn(col3).build();
+			fail();
+		} catch (IllegalStateException e) {
+			// success
+		}
+		TableModel table3 = factory.newBuilder(TableBuilder.class).addColumn(col3).build(true);
+		logger.info(table1.toString());
+		logger.info(table2.toString());
+		logger.info(table3.toString());
 	}
 }



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