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