[Jiemamy-notify] commit [1983] isAssignableFromがアチコチで間違ってたw

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 10月 3日 (金) 09:58:49 JST


Revision: 1983
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=jiemamy&view=rev&rev=1983
Author:   daisuke_m
Date:     2008-10-03 09:58:49 +0900 (Fri, 03 Oct 2008)

Log Message:
-----------
isAssignableFromがアチコチで間違ってたw
SetterInterceptorを、新しいgetAdapter方式に合わせて修正。
J-eventのテストからContainerっ気を抜いた。

Modified Paths:
--------------
    artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/core/extension/composer/ImportContextImpl.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java
    artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetNodesProcessor.java
    artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/SetterInterceptor.java
    artemis/trunk/org.jiemamy.event/src/main/resources/jiemamy-event.dicon
    artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/SetterInterceptorTest.java
    artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableListTest.java
    artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableMapTest.java
    artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/node/TableModelTest.java
    artemis/trunk/org.jiemamy.event/src/test/resources/jiemamy-aop-test.dicon
    artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/AbstractSerializeConnectionModelConverter.java
    artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/CustomBeanConverter.java
    zeus/trunk/org.jiemamy.spec.event/META-INF/MANIFEST.MF


-------------- next part --------------
Modified: artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/core/extension/composer/ImportContextImpl.java
===================================================================
--- artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/core/extension/composer/ImportContextImpl.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.composer/src/main/java/org/jiemamy/core/extension/composer/ImportContextImpl.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -53,7 +53,7 @@
 	 * {@inheritDoc}
 	 */
 	public boolean hasAdapter(Class<?> adapter) {
-		if (adapter.isAssignableFrom(DatabaseReadingContext.class)) {
+		if (DatabaseReadingContext.class.isAssignableFrom(adapter)) {
 			return true;
 		}
 		return false;

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/model/AbstractModel.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -115,7 +115,7 @@
 	 */
 	public boolean hasAdapter(Class<?> adapter) {
 		for (Object myAdapter : adapters) {
-			if (myAdapter.getClass().isAssignableFrom(adapter)) {
+			if (adapter.isAssignableFrom(myAdapter.getClass())) {
 				return true;
 			}
 		}

Modified: artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetNodesProcessor.java
===================================================================
--- artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetNodesProcessor.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.core/src/main/java/org/jiemamy/core/utils/processor/root/GetNodesProcessor.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -49,7 +49,7 @@
 		List<T> nodes = CollectionsUtil.newArrayList();
 		for (AbstractNodeModel node : rootModel.getNodes()) {
 			Class<? extends AbstractNodeModel> nodeClass = node.getClass();
-			if (nodeClass.getName().contains("$$") && node.getClass().getSuperclass().isAssignableFrom(clazz)) {
+			if (nodeClass.getName().contains("$$") && clazz.getSuperclass().isAssignableFrom(node.getClass())) {
 				// s2containerから取得したComponentの場合は、superClassで評価する。
 				nodes.add((T) node);
 			} else if (clazz.isAssignableFrom(node.getClass())) {

Modified: artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/SetterInterceptor.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/SetterInterceptor.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/main/java/org/jiemamy/event/SetterInterceptor.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -21,11 +21,12 @@
 import org.aopalliance.intercept.MethodInterceptor;
 import org.aopalliance.intercept.MethodInvocation;
 
+import org.jiemamy.spec.Adaptable;
 import org.jiemamy.spec.event.Observable;
 
 /**
  * {@link org.jiemamy.core.model.AbstractModel}のSetterをInterceptし、Setter動作後に
- * {@link org.jiemamy.core.model.AbstractModel#fireModelChange(Field)}を実行する。
+ * {@link Observable#fireModelChange(Field)}を実行する。
  * 
  * {@link #invoke(MethodInvocation)}内で、setter実行前実行後のField値を取得する処理をコメントアウトしているが、
  * core内のTestから実行した時はちゃんと取得できる事は確認済み。
@@ -38,7 +39,8 @@
 	 */
 	public Object invoke(MethodInvocation invocation) throws Throwable {
 		Object target = invocation.getThis();
-		if ((target instanceof Observable) == false) {
+		System.out.println(target);
+		if ((target instanceof Adaptable) == false || ((Adaptable) target).hasAdapter(Observable.class) == false) {
 			return invocation.proceed();
 		}
 		Method method = invocation.getMethod();
@@ -60,7 +62,7 @@
 //		Object newValue = field.get(invocation.getThis());
 		
 		// Eventを発火する。
-		((Observable) target).fireModelChange(field);
+		((Adaptable) target).getAdapter(Observable.class).fireModelChange(field);
 		
 		return result;
 	}

Modified: artemis/trunk/org.jiemamy.event/src/main/resources/jiemamy-event.dicon
===================================================================
--- artemis/trunk/org.jiemamy.event/src/main/resources/jiemamy-event.dicon	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/main/resources/jiemamy-event.dicon	2008-10-03 00:58:49 UTC (rev 1983)
@@ -26,6 +26,7 @@
 	
 	<!-- ChangeEventを自動的に発火させるためのsetterInterceptor -->
 	<component name="setterInterceptor" class="org.jiemamy.event.SetterInterceptor"/>
+	
 	<component class="org.jiemamy.core.model.node.TableModelImpl" instance="prototype">
 		<aspect pointcut="set.*">setterInterceptor</aspect> 
 		<initMethod name="registerAdapter">

Modified: artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/SetterInterceptorTest.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/SetterInterceptorTest.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/SetterInterceptorTest.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -27,8 +27,6 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.seasar.framework.container.S2Container;
-import org.seasar.framework.container.factory.S2ContainerFactory;
 import org.seasar.framework.unit.Seasar2;
 import org.seasar.framework.util.tiger.CollectionsUtil;
 
@@ -49,23 +47,22 @@
 public class SetterInterceptorTest {
 	
 	/** S2Container */
-	static S2Container s2container;
+//	static S2Container s2container;
 	
-
 	/**
 	 * S2Containerのインスタンスを作成する。
 	 */
 	@BeforeClass
 	public static void setUpbeforeClass() {
-		s2container = S2ContainerFactory.create("jiemamy-aop-test.dicon");
+//		s2container = S2ContainerFactory.create("jiemamy-aop-test.dicon");
 	}
 	
 
 	/** Test用のModelChangeListener */
-	ModelChangeListenerImpl listener;
+	private ModelChangeListenerImpl listener;
 	
 	/** Test用のTableModel. PropertyChangeEventをListenする対象。 */
-	TableModel tableModel;
+	private TableModel tableModel;
 	
 
 	/**

Modified: artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableListTest.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableListTest.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableListTest.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -30,17 +30,18 @@
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.seasar.framework.container.S2Container;
-import org.seasar.framework.container.factory.S2ContainerFactory;
 
+import org.jiemamy.core.S2FactoryStrategy;
 import org.jiemamy.core.model.typedef.datatype.impl.IntegerDataTypeMock;
 import org.jiemamy.core.model.typedef.datatype.impl.TimestampDataTypeMock;
 import org.jiemamy.core.model.typedef.datatype.impl.VarcharDataTypeMock;
+import org.jiemamy.creator.JiemamyModelFactory;
 import org.jiemamy.spec.event.ObservableCollectionChangeEvent;
 import org.jiemamy.spec.event.ObservableCollectionChangeListener;
 import org.jiemamy.spec.event.ObservableCollectionChangeEvent.Timing;
 import org.jiemamy.spec.event.collectionimpl.ObservableList;
 import org.jiemamy.spec.model.ColumnModel;
+import org.jiemamy.spec.model.RootModel;
 import org.jiemamy.spec.model.datatype.DataType;
 
 /**
@@ -49,15 +50,19 @@
  */
 public class ObservableListTest {
 	
-	static S2Container s2container;
+	static RootModel rootModel;
 	
+	static {
+		JiemamyModelFactory.init(new S2FactoryStrategy("jiemamy-event.dicon"));
+		rootModel = JiemamyModelFactory.createRoot();
+	}
+	
 
 	/**
 	 * Test用のColumnModelを複数作成する。
-	 * @param s2container 
 	 * @return Test用のColumnModelの配列
 	 */
-	public static ColumnModel[] newTestColumnModels(S2Container s2container) {
+	public static ColumnModel[] newTestColumnModels(RootModel rootModel) {
 		Object[][] columnDatas = {
 			{
 				"ID",
@@ -74,9 +79,9 @@
 		};
 		ColumnModel[] columnModels = new ColumnModel[columnDatas.length];
 		for (int i = 0; i < columnModels.length; i++) {
-			columnModels[i] = (ColumnModel) s2container.getComponent(ColumnModel.class);
-			columnModels[i].setName((String) columnDatas[i][0]);
-			columnModels[i].setDataType((DataType) columnDatas[i][1]);
+			columnModels[i] =
+					rootModel.createJiemamyModel(ColumnModel.class).init((String) columnDatas[i][0],
+							(DataType) columnDatas[i][1]);
 		}
 		return columnModels;
 	}
@@ -86,7 +91,7 @@
 	 */
 	@BeforeClass
 	public static void setUpBeforeClass() {
-		s2container = S2ContainerFactory.create("jiemamy-core.dicon");
+//		s2container = S2ContainerFactory.create("jiemamy-core.dicon");
 	}
 	
 
@@ -133,7 +138,7 @@
 	 */
 	@Test
 	public void test_add() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		modelList.add(columns[0]);
 		assertEquals(1, modelList.size());
 		assertEquals(2, listener.events.size()); // BEFORE_ADD, AFTER_ADD
@@ -155,7 +160,7 @@
 	 */
 	@Test
 	public void test_addAll() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		ArrayList<ColumnModel> columnList = new ArrayList<ColumnModel>();
 		for (ColumnModel column : columns) {
 			columnList.add(column);
@@ -170,7 +175,7 @@
 	 */
 	@Test
 	public void test_clear() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		for (ColumnModel column : columns) {
 			modelList.add(column);
 		}
@@ -198,7 +203,7 @@
 	 */
 	@Test
 	public void test_Index指定のaddAll() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		ArrayList<ColumnModel> columnList = new ArrayList<ColumnModel>();
 		for (ColumnModel column : columns) {
 			columnList.add(column);
@@ -220,7 +225,7 @@
 	 */
 	@Test
 	public void test_remove() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		for (ColumnModel column : columns) {
 			modelList.add(column);
 		}
@@ -255,7 +260,7 @@
 	 */
 	@Test
 	public void test_removeAll() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels(rootModel);
 		ArrayList<ColumnModel> columnList = new ArrayList<ColumnModel>();
 		for (ColumnModel column : columns) {
 			columnList.add(column);

Modified: artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableMapTest.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableMapTest.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/event/collectionimpl/ObservableMapTest.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -30,8 +30,6 @@
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.seasar.framework.container.S2Container;
-import org.seasar.framework.container.factory.S2ContainerFactory;
 
 import org.jiemamy.core.S2FactoryStrategy;
 import org.jiemamy.core.model.typedef.datatype.impl.IntegerDataTypeMock;
@@ -52,8 +50,6 @@
  */
 public class ObservableMapTest {
 	
-	static S2Container s2container;
-	
 	static RootModel rootModel;
 	
 	static {
@@ -67,7 +63,8 @@
 	 * @param s2container 
 	 * @return Test用のColumnModelの配列
 	 */
-	public static ColumnModel[] newTestColumnModels(S2Container s2container) {
+	public static ColumnModel[] newTestColumnModels() {
+		
 		Object[][] columnDatas = {
 			{
 				"ID",
@@ -96,7 +93,7 @@
 	 */
 	@BeforeClass
 	public static void setUpBeforeClass() {
-		s2container = S2ContainerFactory.create("jiemamy-core.dicon");
+//		s2container = S2ContainerFactory.create("jiemamy-core.dicon");
 	}
 	
 
@@ -128,7 +125,7 @@
 	 */
 	@Test
 	public void test_clear() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels();
 		int index = 0;
 		for (ColumnModel column : columns) {
 			modelMap.put(index++, column);
@@ -157,7 +154,7 @@
 	 */
 	@Test
 	public void test_put() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels();
 		modelMap.put(0, columns[0]);
 		assertEquals(1, modelMap.size());
 		assertEquals(2, listener.events.size()); // BEFORE_ADD, AFTER_ADD
@@ -185,7 +182,7 @@
 	 */
 	@Test
 	public void test_putAll() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels();
 		ObservableMap<Integer, ColumnModel> columnMap = new ObservableMap<Integer, ColumnModel>();
 		int index = 0;
 		for (ColumnModel column : columns) {
@@ -203,7 +200,7 @@
 	 */
 	@Test
 	public void test_remove() {
-		ColumnModel[] columns = newTestColumnModels(s2container);
+		ColumnModel[] columns = newTestColumnModels();
 		int index = 0;
 		for (ColumnModel column : columns) {
 			modelMap.put(index++, column);

Modified: artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/node/TableModelTest.java
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/node/TableModelTest.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/test/java/org/jiemamy/core/model/node/TableModelTest.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -14,20 +14,33 @@
  */
 package org.jiemamy.core.model.node;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.seasar.framework.container.S2Container;
-import org.seasar.framework.container.factory.S2ContainerFactory;
+import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
 import org.seasar.framework.unit.Seasar2;
 
+import org.jiemamy.core.S2FactoryStrategy;
+import org.jiemamy.core.event.collectionimpl.ObservableListTest;
+import org.jiemamy.creator.JiemamyModelFactory;
 import org.jiemamy.event.SetterInterceptor;
+import org.jiemamy.spec.event.ModelChangeEvent;
+import org.jiemamy.spec.event.ObservableCollectionChangeEvent;
+import org.jiemamy.spec.event.model.node.TableModelChangeListener;
+import org.jiemamy.spec.event.model.node.TableModelChangeSupport;
 import org.jiemamy.spec.model.ColumnModel;
 import org.jiemamy.spec.model.RootModel;
+import org.jiemamy.spec.model.constraint.CheckConstraintModel;
+import org.jiemamy.spec.model.index.IndexModel;
 import org.jiemamy.spec.model.node.TableModel;
 
 /**
@@ -37,27 +50,28 @@
 @RunWith(Seasar2.class)
 public class TableModelTest {
 	
-	static S2Container s2container;
-	
-
 	/**
 	 * S2Containerを作成する。
 	 */
 	@BeforeClass
 	public static void setUpBeforeClass() {
-		s2container = S2ContainerFactory.create("jiemamy-event.dicon");
-		s2container.init();
-//		System.out.println(S2ContainerUtil.inspect(s2container));
 	}
 	
-//	TableModelChangeListenerImpl listener;
+
+	TableModelChangeListenerImpl listener;
 	
+	private RootModel rootModel;
+	
+
 	/**
 	 * Test用のListenerを作成する。
 	 */
 	@Before
 	public void setUp() {
-//		listener = (new TableModelChangeListenerImpl());
+		listener = (new TableModelChangeListenerImpl());
+		
+		JiemamyModelFactory.init(new S2FactoryStrategy("jiemamy-event.dicon"));
+		rootModel = JiemamyModelFactory.createRoot();
 	}
 	
 	/**
@@ -65,7 +79,7 @@
 	 */
 	@After
 	public void tearDown() {
-//		listener = null;
+		listener = null;
 	}
 	
 	/**
@@ -73,6 +87,7 @@
 	 */
 	@Test
 	public void test00_Componentの自動登録機能を確認する() {
+		S2Container s2container = SingletonS2ContainerFactory.getContainer();
 		assertNotNull(s2container.getComponent(RootModel.class));
 		assertNotNull(s2container.getComponent(TableModel.class));
 		assertNotNull(s2container.getComponent(ColumnModel.class));
@@ -84,121 +99,138 @@
 	 */
 	@Test
 	public void test01() {
-//		TableModel tableModel01 = (TableModel) s2container.getComponent(TableModel.class);
-//		List<ColumnModel> columns = tableModel01.getColumns();
-//		List<CheckConstraintModel> checks = tableModel01.getChecks();
-//		List<IndexModel> indexes = tableModel01.getIndexes();
-//		tableModel01.getAdapter(TableModelChangeSupport.class).addTableModelChangeListener(listener);
-//		ColumnModel[] columnModels = ObservableListTest.newTestColumnModels(s2container);
-//		// TableModelより取得したColumnModel用のCollectionに要素の追加を行う。
-//		listener.clear();
-//		columns.add(columnModels[0]);
-//		columns.add(columnModels[1]);
-//		columns.add(columnModels[2]);
-//		assertEquals(6, listener.columnsEvents.size()); // 3*2(before/after)=6
-//		assertEquals(0, listener.checksEvents.size());
-//		assertEquals(0, listener.indexesEvents.size());
-//		assertEquals(0, listener.tableEvents.size());
-//		// TableModelの属性を変更する。
-//		listener.clear();
-//		tableModel01.setBeginScript("begin script");
-//		assertEquals(0, listener.columnsEvents.size());
-//		assertEquals(0, listener.checksEvents.size());
-//		assertEquals(0, listener.indexesEvents.size());
-//		assertEquals(1, listener.tableEvents.size()); // TableModelの属性変更イベント
-//		// TableModelが保持するColumnModel用Collectionの中の要素に対して変更操作
-//		listener.clear();
-//		columnModels[1].setName("changedName");
-//		assertEquals(1, listener.columnsEvents.size()); // CollectionChangeEventとして発火される。
-//		assertEquals(0, listener.checksEvents.size());
-//		assertEquals(0, listener.indexesEvents.size());
-//		assertEquals(0, listener.tableEvents.size());
-//		
-//		// 上記ColumnModel用Collectionに対する操作を他のCollectionに対しても行う。
-//		listener.clear();
-//		CheckConstraintModel check01 = (CheckConstraintModel) s2container.getComponent(CheckConstraintModel.class);
-//		checks.add(check01);
-//		check01.setName("check_changedName");
-//		check01.setExpression("check_expression");
-//		IndexModel index01 = (IndexModel) s2container.getComponent(IndexModel.class);
-//		indexes.add(index01);
-//		index01.setName("index01");
-//		assertEquals(0, listener.columnsEvents.size());
-//		assertEquals(4, listener.checksEvents.size()); // checkの追加(before,after)+属性変更*2
-//		assertEquals(3, listener.indexesEvents.size()); // indexの追加(before,after)+属性変更*1
-//		assertEquals(0, listener.tableEvents.size());
+		TableModel tableModel01 = rootModel.createJiemamyModel(TableModel.class).init("T_USER");
+		List<ColumnModel> columns = tableModel01.getColumns();
+		List<CheckConstraintModel> checks = tableModel01.getChecks();
+		List<IndexModel> indexes = tableModel01.getIndexes();
+		tableModel01.getAdapter(TableModelChangeSupport.class).addTableModelChangeListener(listener);
+		ColumnModel[] columnModels = ObservableListTest.newTestColumnModels(rootModel);
+		// TableModelより取得したColumnModel用のCollectionに要素の追加を行う。
+		listener.clear();
+		columns.add(columnModels[0]);
+		columns.add(columnModels[1]);
+		columns.add(columnModels[2]);
+		assertEquals(6, listener.columnsEvents.size()); // 3*2(before/after)=6
+		assertEquals(0, listener.checksEvents.size());
+		assertEquals(0, listener.indexesEvents.size());
+		assertEquals(0, listener.tableEvents.size());
+		// TableModelの属性を変更する。
+		listener.clear();
+		tableModel01.setBeginScript("begin script");
+		assertEquals(0, listener.columnsEvents.size());
+		assertEquals(0, listener.checksEvents.size());
+		assertEquals(0, listener.indexesEvents.size());
+		assertEquals(1, listener.tableEvents.size()); // TableModelの属性変更イベント
+		// TableModelが保持するColumnModel用Collectionの中の要素に対して変更操作
+		listener.clear();
+		columnModels[1].setName("changedName");
+		assertEquals(1, listener.columnsEvents.size()); // CollectionChangeEventとして発火される。
+		assertEquals(0, listener.checksEvents.size());
+		assertEquals(0, listener.indexesEvents.size());
+		assertEquals(0, listener.tableEvents.size());
+		
+		// 上記ColumnModel用Collectionに対する操作を他のCollectionに対しても行う。
+		listener.clear();
+		CheckConstraintModel check01 = rootModel.createJiemamyModel(CheckConstraintModel.class);
+		checks.add(check01);
+		check01.setName("check_changedName");
+		check01.setExpression("check_expression");
+		IndexModel index01 = rootModel.createJiemamyModel(IndexModel.class);
+		indexes.add(index01);
+		index01.setName("index01");
+		assertEquals(0, listener.columnsEvents.size());
+		assertEquals(4, listener.checksEvents.size()); // checkの追加(before,after)+属性変更*2
+		assertEquals(3, listener.indexesEvents.size()); // indexの追加(before,after)+属性変更*1
+		assertEquals(0, listener.tableEvents.size());
 	}
 	
-//	class TableModelChangeListenerImpl implements TableModelChangeListener {
-//		
-//		List<ModelChangeEvent> tableEvents = new ArrayList<ModelChangeEvent>();
-//		
-//		List<ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel>> checksEvents =
-//				new ArrayList<ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel>>();
-//		
-//		List<ObservableCollectionChangeEvent<List<IndexModel>, IndexModel>> indexesEvents =
-//				new ArrayList<ObservableCollectionChangeEvent<List<IndexModel>, IndexModel>>();
-//		
-//		List<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>> columnsEvents =
-//				new ArrayList<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>>();
-//		
-//
-//		/**
-//		 * {@inheritDoc}
-//		 */
-//		public void checkCollectionChange(
-//				ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel> event) {
-//			System.out.println(String.format("checksへの変更Event:timing=%s,index=%d,checkName=%s", new Object[] {
-//				event.getTiming().toString(),
-//				event.getIndex(),
-//				event.getModel().getName()
-//			}));
-//			checksEvents.add(event);
-//		}
-//		
-//		/**
-//		 * Eventの履歴を全て削除する。
-//		 */
-//		public void clear() {
-//			columnsEvents.clear();
-//			indexesEvents.clear();
-//			tableEvents.clear();
-//			checksEvents.clear();
-//		}
-//		
-//		/**
-//		 * {@inheritDoc}
-//		 */
-//		public void columnCollectionChange(ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) {
-//			System.out.println(String.format("columnsへの変更Event:timing=%s,index=%d,columnName=%s", new Object[] {
-//				event.getTiming().toString(),
-//				event.getIndex(),
-//				event.getModel().getName()
-//			}));
-//			columnsEvents.add(event);
-//		}
-//		
-//		/**
-//		 * {@inheritDoc}
-//		 */
-//		public void indexCollectionChange(ObservableCollectionChangeEvent<List<IndexModel>, IndexModel> event) {
-//			System.out.println(String.format("indexesへの変更Event:timing=%s,index=%d,indexName=%s", new Object[] {
-//				event.getTiming().toString(),
-//				event.getIndex(),
-//				event.getModel().getName()
-//			}));
-//			indexesEvents.add(event);
-//		}
-//		
-//		/**
-//		 * {@inheritDoc}
-//		 */
-//		public void modelChanged(ModelChangeEvent event) {
-//			System.out.println(String.format("TableModel自身への変更Event:hash=%s,field=%s", new Object[] {
-//				Integer.toHexString(event.getSource().hashCode()),
-//				event.getField().toString()
-//			}));
-//			tableEvents.add(event);
-//		}
-//	}
+
+	class TableModelChangeListenerImpl implements TableModelChangeListener {
+		
+		List<ModelChangeEvent> tableEvents = new ArrayList<ModelChangeEvent>();
+		
+		List<ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel>> checksEvents =
+				new ArrayList<ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel>>();
+		
+		List<ObservableCollectionChangeEvent<List<IndexModel>, IndexModel>> indexesEvents =
+				new ArrayList<ObservableCollectionChangeEvent<List<IndexModel>, IndexModel>>();
+		
+		List<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>> columnsEvents =
+				new ArrayList<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>>();
+		
+		List<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>> pkColumnsEvents =
+				new ArrayList<ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel>>();
+		
+
+		/**
+		 * {@inheritDoc}
+		 */
+		public void checkCollectionChange(
+				ObservableCollectionChangeEvent<List<CheckConstraintModel>, CheckConstraintModel> event) {
+			System.out.println(String.format("checksへの変更Event:timing=%s,index=%d,checkName=%s", new Object[] {
+				event.getTiming().toString(),
+				event.getIndex(),
+				event.getModel().getName()
+			}));
+			checksEvents.add(event);
+		}
+		
+		/**
+		 * Eventの履歴を全て削除する。
+		 */
+		public void clear() {
+			columnsEvents.clear();
+			indexesEvents.clear();
+			tableEvents.clear();
+			checksEvents.clear();
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		public void columnCollectionChange(ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) {
+			System.out.println(String.format("columnsへの変更Event:timing=%s,index=%d,columnName=%s", new Object[] {
+				event.getTiming().toString(),
+				event.getIndex(),
+				event.getModel().getName()
+			}));
+			columnsEvents.add(event);
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		public void indexCollectionChange(ObservableCollectionChangeEvent<List<IndexModel>, IndexModel> event) {
+			System.out.println(String.format("indexesへの変更Event:timing=%s,index=%d,indexName=%s", new Object[] {
+				event.getTiming().toString(),
+				event.getIndex(),
+				event.getModel().getName()
+			}));
+			indexesEvents.add(event);
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		public void modelChanged(ModelChangeEvent event) {
+			System.out.println(String.format("TableModel自身への変更Event:hash=%s,field=%s", new Object[] {
+				Integer.toHexString(event.getSource().hashCode()),
+				event.getField().toString()
+			}));
+			tableEvents.add(event);
+		}
+		
+		/**
+		 * {@inheritDoc}
+		 */
+		public void primaryKeyColumnCollectionChange(
+				ObservableCollectionChangeEvent<List<ColumnModel>, ColumnModel> event) {
+			System.out.println(String.format("primaryKeyColumnへの変更Event:timing=%s,index=%d,indexName=%s", new Object[] {
+				event.getTiming().toString(),
+				event.getIndex(),
+				event.getModel().getName()
+			}));
+			pkColumnsEvents.add(event);
+		}
+	}
 }

Modified: artemis/trunk/org.jiemamy.event/src/test/resources/jiemamy-aop-test.dicon
===================================================================
--- artemis/trunk/org.jiemamy.event/src/test/resources/jiemamy-aop-test.dicon	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.event/src/test/resources/jiemamy-aop-test.dicon	2008-10-03 00:58:49 UTC (rev 1983)
@@ -3,7 +3,11 @@
 	"http://www.seasar.org/dtd/components24.dtd">
 <components>
 	<component name="setterInterceptor" class="org.jiemamy.event.SetterInterceptor"/>
+	<component name="observableImpl" class="org.jiemamy.event.ObservableImpl" instance="prototype"/>
 	<component name="tableModel" class="org.jiemamy.core.model.node.TableModelImpl">
 		<aspect pointcut="set.*">setterInterceptor</aspect> 
+		<initMethod name="registerAdapter">
+			<arg>observableImpl</arg>
+		</initMethod>
 	</component>
 </components>

Modified: artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/AbstractSerializeConnectionModelConverter.java
===================================================================
--- artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/AbstractSerializeConnectionModelConverter.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/AbstractSerializeConnectionModelConverter.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -46,9 +46,8 @@
 			return null;
 		}
 		Class sourceClass = source.getClass();
-		if (sourceClass == (java.lang.Object.class) || sourceClass == (java.lang.String.class)
-				|| sourceClass == (java.lang.Boolean.class) || sourceClass == (java.lang.Character.class)
-				|| (java.lang.Number.class).isAssignableFrom(sourceClass)) {
+		if (sourceClass == Object.class || sourceClass == String.class || sourceClass == Boolean.class
+				|| sourceClass == Character.class || Number.class.isAssignableFrom(sourceClass)) {
 			return source;
 		}
 		if (shallowCopy && destClass.isAssignableFrom(sourceClass)) {

Modified: artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/CustomBeanConverter.java
===================================================================
--- artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/CustomBeanConverter.java	2008-10-02 11:46:25 UTC (rev 1982)
+++ artemis/trunk/org.jiemamy.serializer/src/main/java/org/jiemamy/serializer/converter/CustomBeanConverter.java	2008-10-03 00:58:49 UTC (rev 1983)
@@ -125,9 +125,8 @@
 		}
 		System.out.println(String.format("Start : %s:%s , %s", source.getClass(), source, destClass));
 		Class sourceClass = source.getClass();
-		if (sourceClass == (java.lang.Object.class) || sourceClass == (java.lang.String.class)
-				|| sourceClass == (java.lang.Boolean.class) || sourceClass == (java.lang.Character.class)
-				|| (java.lang.Number.class).isAssignableFrom(sourceClass)) {
+		if (sourceClass == Object.class || sourceClass == String.class || sourceClass == Boolean.class
+				|| sourceClass == Character.class || Number.class.isAssignableFrom(sourceClass)) {
 			return source;
 		}
 		if (shallowCopy && destClass.isAssignableFrom(sourceClass)) {
@@ -396,7 +395,7 @@
 		 */
 		@SuppressWarnings("unchecked")
 		public Class getKeyClassOfMap() {
-			if (!Map.class.isAssignableFrom(propertyType) || !isParameterized()) {
+			if (Map.class.isAssignableFrom(propertyType) == false || isParameterized() == false) {
 				return null;
 			}
 			return parameterizedClassDesc.getArguments()[0].getRawClass();
@@ -453,7 +452,7 @@
 		 */
 		@SuppressWarnings("unchecked")
 		public Class getValueClassOfMap() {
-			if (!Map.class.isAssignableFrom(propertyType) || !isParameterized()) {
+			if (Map.class.isAssignableFrom(propertyType) == false || isParameterized() == false) {
 				return null;
 			}
 			return parameterizedClassDesc.getArguments()[1].getRawClass();

Modified: zeus/trunk/org.jiemamy.spec.event/META-INF/MANIFEST.MF
===================================================================
--- zeus/trunk/org.jiemamy.spec.event/META-INF/MANIFEST.MF	2008-10-02 11:46:25 UTC (rev 1982)
+++ zeus/trunk/org.jiemamy.spec.event/META-INF/MANIFEST.MF	2008-10-03 00:58:49 UTC (rev 1983)
@@ -9,4 +9,11 @@
 Eclipse-LazyStart: false
 Require-Bundle: org.jiemamy.spec.core
 Export-Package: org.jiemamy.spec.event,
- org.jiemamy.spec.event.collectionimpl
+ org.jiemamy.spec.event.collectionimpl,
+ org.jiemamy.spec.event.model,
+ org.jiemamy.spec.event.model.connection,
+ org.jiemamy.spec.event.model.constraint,
+ org.jiemamy.spec.event.model.dataset,
+ org.jiemamy.spec.event.model.datatype,
+ org.jiemamy.spec.event.model.index,
+ org.jiemamy.spec.event.model.node


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