Fix bug dealing with property change events and the array setter not correctly checking equals.
Fix backwards compat issue with getValue(index, name) for nonindexed properties.
Rename mergeTreeRootUpdate to mergeUpdate. Generate mergeUpdate for extendBaseBean mode.
1.1 --- a/schema2beans/test/unit/src/TestMain.java Wed Oct 22 16:57:30 2003 +0000
1.2 +++ b/schema2beans/test/unit/src/TestMain.java Wed Oct 22 17:49:45 2003 +0000
1.3 @@ -206,6 +206,7 @@
1.4 config.setGenerateCommonInterface("CommonBean");
1.5 config.setExtendBaseBean(true);
1.6 config.setUseInterfaces(true);
1.7 + config.setDumpToString(true);
1.8 generalTest("TestMergeExtendBaseBean", false, config);
1.9 }
1.10
2.1 --- a/schema2beans/test/unit/src/data/TestMergeExtendBaseBean.java Wed Oct 22 16:57:30 2003 +0000
2.2 +++ b/schema2beans/test/unit/src/data/TestMergeExtendBaseBean.java Wed Oct 22 17:49:45 2003 +0000
2.3 @@ -193,10 +193,7 @@
2.4 b3.addPropertyChangeListener(l3);
2.5
2.6 b3.merge(b1);
2.7 -
2.8 - // All of the same contents, but in a different order is still different.
2.9 - //check(b3.equals(b1), " - equals");
2.10 -
2.11 +
2.12 //
2.13 // Change only one element of the second graph
2.14 //
2.15 @@ -221,7 +218,7 @@
2.16 out("should not get any event");
2.17 b1.merge(b3);
2.18 // All of the same contents, but in a different order is still different.
2.19 - //check(b3.equals(b1), " - equals");
2.20 + check(b3.equals(b1), " - equals");
2.21
2.22 this.mute(true);
2.23 b2.setSummary(s2);
2.24 @@ -243,15 +240,15 @@
2.25 check(b1.getAuthor(0).equals(b2.getAuthor(2)), "mixed");
2.26 check(b1.getAuthor(1).equals(b2.getAuthor(1)), "mixed");
2.27 check(b1.getAuthor(2).equals(b2.getAuthor(0)), "mixed");
2.28 - out("should not get any event");
2.29 +
2.30 b1.merge(b2);
2.31 // All of the same contents, but in a different order is still different.
2.32 - //check(b2.equals(b1), " - equals");
2.33 + check(b2.equals(b1), " - equals");
2.34 this.mute(true);
2.35 b2.setAuthor(ss1);
2.36 - check(b1.getAuthor(0).equals(b2.getAuthor(0)), "reset match");
2.37 + check(b1.getAuthor(0).equals(b2.getAuthor(2)), "reset match");
2.38 check(b1.getAuthor(1).equals(b2.getAuthor(1)), "reset match");
2.39 - check(b1.getAuthor(2).equals(b2.getAuthor(2)), "reset match");
2.40 + check(b1.getAuthor(2).equals(b2.getAuthor(0)), "reset match");
2.41
2.42 //
2.43 // Mixing array of beans
2.44 @@ -270,15 +267,15 @@
2.45 check(b1.getChapter(0).equals(b2.getChapter(2)), "mixed");
2.46 check(b1.getChapter(1).equals(b2.getChapter(1)), "mixed");
2.47 check(b1.getChapter(2).equals(b2.getChapter(0)), "mixed");
2.48 - out("should not get any event");
2.49 +
2.50 b1.merge(b2);
2.51 // All of the same contents, but in a different order is still different.
2.52 - //check(b2.equals(b1), " - equals");
2.53 + check(b2.equals(b1), " - equals");
2.54 this.mute(true);
2.55 b2.setChapter(cc1);
2.56 - check(b1.getChapter(0).equals(b2.getChapter(0)), "reset match");
2.57 + check(b1.getChapter(0).equals(b2.getChapter(2)), "reset match");
2.58 check(b1.getChapter(1).equals(b2.getChapter(1)), "reset match");
2.59 - check(b1.getChapter(2).equals(b2.getChapter(2)), "reset match");
2.60 + check(b1.getChapter(2).equals(b2.getChapter(0)), "reset match");
2.61
2.62 //
2.63 // Removing a String elt from an array
2.64 @@ -288,12 +285,13 @@
2.65 check(b1.getAuthor(1).equals(b2.getAuthor(1)), "initial match");
2.66 check(b1.getAuthor(2).equals(b2.getAuthor(2)), "initial match");
2.67 this.mute(false);
2.68 + b2 = (Book) b1.clone();
2.69 s1 = b2.getAuthor(1);
2.70 out("should get one remove event from deletion");
2.71 b2.removeAuthor(s1);
2.72 check(b1.getAuthor(0).equals(b2.getAuthor(0)), "match after rem");
2.73 check(b1.getAuthor(2).equals(b2.getAuthor(1)), "match after rem");
2.74 - out("should get one remove event from merge");
2.75 + out("should get one Book remove event from merge");
2.76 b1.merge(b2);
2.77 check(b1.getAuthor(0).equals(b2.getAuthor(0)), "match");
2.78 check(b1.getAuthor(1).equals(b2.getAuthor(1)), "match");
2.79 @@ -336,7 +334,7 @@
2.80 b2.removeChapter(c1);
2.81 check(b1.getChapter(0).equals(b2.getChapter(0)), "match after rem");
2.82 check(b1.getChapter(2).equals(b2.getChapter(1)), "match after rem");
2.83 - out("should get one remove event from merge");
2.84 + out("should get one Chapter remove event from merge");
2.85 b1.merge(b2);
2.86 check(b1.getChapter(0).equals(b2.getChapter(0)), "match");
2.87 check(b1.getChapter(1).equals(b2.getChapter(1)), "match");
2.88 @@ -387,8 +385,8 @@
2.89 b4.merge(b5);
2.90 check(b4.sizeChapter() == 3, "correct new array sise");
2.91 check(b4.getChapter(0).equals(b5.getChapter(0)), "elt ok");
2.92 - check(b4.getChapter(1) == null, "elt ok");
2.93 - check(b4.getChapter(2).equals(b5.getChapter(1)), "elt ok");
2.94 + check(b4.getChapter(1).equals(b5.getChapter(1)), "elt ok");
2.95 + check(b4.getChapter(2) == null, "elt ok");
2.96
2.97 setTest("comparing graphs with null single bean elt");
2.98 // g1.bean non null / g2.bean is null
2.99 @@ -473,7 +471,7 @@
2.100 b1.write(out);
2.101 */
2.102 // All of the same contents, but in a different order is still different.
2.103 - //check(b1.equals(b2), "should be equals");
2.104 + check(b1.equals(b2), "should be equals");
2.105
2.106 // Make sure that b1 has the attributes
2.107 s1 = b1.getGood();
2.108 @@ -492,14 +490,14 @@
2.109 check(s1.equals("us"), "attr on summary");
2.110 }
2.111
2.112 - s1 = b1.getChapter(1).getTitle();
2.113 + s1 = b1.getChapter(0).getTitle();
2.114 out(s1);
2.115 check(s1 != null, "attr on chapter != null");
2.116 if (s1 != null) {
2.117 check(s1.equals("First"), "attr on chapter");
2.118 }
2.119
2.120 - s1 = b1.getChapter(2).getTitle();
2.121 + s1 = b1.getChapter(1).getTitle();
2.122 out(s1);
2.123 check(s1 != null, "attr on chapter != null");
2.124 if (s1 != null) {
3.1 --- a/schema2beans/test/unit/src/data/goldenfiles/TestMain/testMergeExtendBaseBean.pass Wed Oct 22 16:57:30 2003 +0000
3.2 +++ b/schema2beans/test/unit/src/data/goldenfiles/TestMain/testMergeExtendBaseBean.pass Wed Oct 22 17:49:45 2003 +0000
3.3 @@ -42,6 +42,20 @@
3.4 out: TestMergeExtendBaseBean - creating the DOM document
3.5 out: TestMergeExtendBaseBean - creating the bean graph3
3.6 out: TestMergeExtendBaseBean - new listener for Book
3.7 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Author.-1 Src:book.Book>
3.8 +out: TestMergeExtendBaseBean - <Author[-1] - Parent: Book/book.Book>
3.9 +out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Chapter.0/Comment Src:book.Chapter>
3.10 +out: TestMergeExtendBaseBean - <Comment[-1] - Parent: Chapter/book.Chapter>
3.11 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.0/Paragraph.-1 Src:book.Chapter>
3.12 +out: TestMergeExtendBaseBean - <Paragraph[-1] - Parent: Chapter/book.Chapter>
3.13 +out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.0/ParagraphOpt.1 Src:book.Chapter>
3.14 +out: TestMergeExtendBaseBean - <ParagraphOpt[1] - Parent: Chapter/book.Chapter>
3.15 +out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.1/Comment Src:book.Chapter>
3.16 +out: TestMergeExtendBaseBean - <Comment[-1] - Parent: Chapter/book.Chapter>
3.17 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.1/Paragraph.-1 Src:book.Chapter>
3.18 +out: TestMergeExtendBaseBean - <Paragraph[-1] - Parent: Chapter/book.Chapter>
3.19 +out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.1/ParagraphOpt.1 Src:book.Chapter>
3.20 +out: TestMergeExtendBaseBean - <ParagraphOpt[1] - Parent: Chapter/book.Chapter>
3.21 out: TestMergeExtendBaseBean - should get one event for Summary
3.22 out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Summary Src:book.Book>
3.23 out: TestMergeExtendBaseBean - <Summary[-1] - Parent: Book/book.Book>
3.24 @@ -125,6 +139,7 @@
3.25 out: </book>
3.26 out: TestMergeExtendBaseBean Merge(Update) - changing one property - equals -> OK
3.27 out: TestMergeExtendBaseBean - should not get any event
3.28 +out: TestMergeExtendBaseBean Merge(Update) - changing one property - equals -> OK
3.29 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings initial match -> OK
3.30 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings initial match -> OK
3.31 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings initial match -> OK
3.32 @@ -133,7 +148,9 @@
3.33 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings mixed -> OK
3.34 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings mixed -> OK
3.35 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings mixed -> OK
3.36 -out: TestMergeExtendBaseBean - should not get any event
3.37 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Author.-1 Src:book.Book>
3.38 +out: TestMergeExtendBaseBean - <Author[-1] - Parent: Book/book.Book>
3.39 +out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings - equals -> OK
3.40 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings reset match -> OK
3.41 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings reset match -> OK
3.42 out: TestMergeExtendBaseBean Merge(Update) - mixing array of strings reset match -> OK
3.43 @@ -145,7 +162,21 @@
3.44 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans mixed -> OK
3.45 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans mixed -> OK
3.46 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans mixed -> OK
3.47 -out: TestMergeExtendBaseBean - should not get any event
3.48 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Author.-1 Src:book.Book>
3.49 +out: TestMergeExtendBaseBean - <Author[-1] - Parent: Book/book.Book>
3.50 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.0/Comment Src:book.Chapter>
3.51 +out: TestMergeExtendBaseBean - <Comment[-1] - Parent: Chapter/book.Chapter>
3.52 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.0/Paragraph.-1 Src:book.Chapter>
3.53 +out: TestMergeExtendBaseBean - <Paragraph[-1] - Parent: Chapter/book.Chapter>
3.54 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.0/ParagraphOpt.-1 Src:book.Chapter>
3.55 +out: TestMergeExtendBaseBean - <ParagraphOpt[-1] - Parent: Chapter/book.Chapter>
3.56 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.2/Comment Src:book.Chapter>
3.57 +out: TestMergeExtendBaseBean - <Comment[-1] - Parent: Chapter/book.Chapter>
3.58 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.2/Paragraph.-1 Src:book.Chapter>
3.59 +out: TestMergeExtendBaseBean - <Paragraph[-1] - Parent: Chapter/book.Chapter>
3.60 +out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Chapter.2/ParagraphOpt.-1 Src:book.Chapter>
3.61 +out: TestMergeExtendBaseBean - <ParagraphOpt[-1] - Parent: Chapter/book.Chapter>
3.62 +out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans - equals -> OK
3.63 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans reset match -> OK
3.64 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans reset match -> OK
3.65 out: TestMergeExtendBaseBean Merge(Update) - mixing array of beans reset match -> OK
3.66 @@ -157,7 +188,7 @@
3.67 out: TestMergeExtendBaseBean - <Author[1] - Parent: Book/book.Book>
3.68 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of strings match after rem -> OK
3.69 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of strings match after rem -> OK
3.70 -out: TestMergeExtendBaseBean - should get one remove event from merge
3.71 +out: TestMergeExtendBaseBean - should get one Book remove event from merge
3.72 out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Author.1 Src:book.Book>
3.73 out: TestMergeExtendBaseBean - <Author[1] - Parent: Book/book.Book>
3.74 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of strings match -> OK
3.75 @@ -184,7 +215,7 @@
3.76 out: TestMergeExtendBaseBean - <Chapter[1] - Parent: Book/book.Book>
3.77 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of beans match after rem -> OK
3.78 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of beans match after rem -> OK
3.79 -out: TestMergeExtendBaseBean - should get one remove event from merge
3.80 +out: TestMergeExtendBaseBean - should get one Chapter remove event from merge
3.81 out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.1 Src:book.Book>
3.82 out: TestMergeExtendBaseBean - <Chapter[1] - Parent: Book/book.Book>
3.83 out: TestMergeExtendBaseBean Merge(Update) - remove elt from array of beans match -> OK
3.84 @@ -226,29 +257,40 @@
3.85 out: TestMergeExtendBaseBean - creating the bean graph1
3.86 out: TestMergeExtendBaseBean - creating the DOM document
3.87 out: TestMergeExtendBaseBean - creating the bean graph2
3.88 -out: TestMergeExtendBaseBean - Chapter
3.89 -out: TestMergeExtendBaseBean - Chapter
3.90 +out: TestMergeExtendBaseBean - <Chapter title='First'>
3.91 +out: <number></number>
3.92 +out: <paragraph>
3.93 +out: And the book lived a never ending happy life, read, copied
3.94 +out: and enjoyed by so many readers.
3.95 +out: </paragraph>
3.96 +out: </Chapter>
3.97 +out:
3.98 +out: TestMergeExtendBaseBean - <Chapter title='First'>
3.99 +out: <number></number>
3.100 +out: <paragraph>
3.101 +out: And the book lived a never ending happy life, read, copied
3.102 +out: and enjoyed by so many readers.
3.103 +out: </paragraph>
3.104 +out: </Chapter>
3.105 +out:
3.106 out: TestMergeExtendBaseBean - new listener for Book
3.107 out: TestMergeExtendBaseBean - new listener for Book
3.108 out: TestMergeExtendBaseBean Merging attributes shouldn't be equals (diff an attr) -> OK
3.109 out: TestMergeExtendBaseBean - <Chg Lnr:Book Evt:/Book/Good Src:book.Book>
3.110 out: TestMergeExtendBaseBean - <Good[-1] - Parent: Book/book.Book>
3.111 -out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Index.0 Src:book.Book>
3.112 -out: TestMergeExtendBaseBean - <Index[0] - Parent: Book/book.Book>
3.113 -out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Index.1 Src:book.Book>
3.114 -out: TestMergeExtendBaseBean - <Index[1] - Parent: Book/book.Book>
3.115 -out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.0 Src:book.Book>
3.116 -out: TestMergeExtendBaseBean - <Chapter[0] - Parent: Book/book.Book>
3.117 -out: TestMergeExtendBaseBean - <Rmv Lnr:Book Evt:/Book/Chapter.0 Src:book.Book>
3.118 -out: TestMergeExtendBaseBean - <Chapter[0] - Parent: Book/book.Book>
3.119 -out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Chapter.1 Src:book.Book>
3.120 -out: TestMergeExtendBaseBean - <Chapter[1] - Parent: Book/book.Book>
3.121 -out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Chapter.2 Src:book.Book>
3.122 -out: TestMergeExtendBaseBean - <Chapter[2] - Parent: Book/book.Book>
3.123 +out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Index.0/Color Src:book.Index>
3.124 +out: TestMergeExtendBaseBean - <Color[-1] - Parent: Index/book.Index>
3.125 +out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Index.0/CrossRef Src:book.Index>
3.126 +out: TestMergeExtendBaseBean - <CrossRef[-1] - Parent: Index/book.Index>
3.127 +out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Chapter.0/Title Src:book.Chapter>
3.128 +out: TestMergeExtendBaseBean - <Title[-1] - Parent: Chapter/book.Chapter>
3.129 +out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/Chapter.1/Title Src:book.Chapter>
3.130 +out: TestMergeExtendBaseBean - <Title[-1] - Parent: Chapter/book.Chapter>
3.131 out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/SummaryLength Src:book.Book>
3.132 out: TestMergeExtendBaseBean - <SummaryLength[-1] - Parent: Book/book.Book>
3.133 out: TestMergeExtendBaseBean - <Add Lnr:Book Evt:/Book/SummaryLang Src:book.Book>
3.134 out: TestMergeExtendBaseBean - <SummaryLang[-1] - Parent: Book/book.Book>
3.135 +out: TestMergeExtendBaseBean Merging attributes should be equals -> OK
3.136 out: TestMergeExtendBaseBean Merging attributes attr on root != null -> OK
3.137 out: TestMergeExtendBaseBean Merging attributes attr on root -> OK
3.138 out: TestMergeExtendBaseBean Merging attributes attr on summary != null -> OK
3.139 @@ -276,10 +318,10 @@
3.140 out: John Smith
3.141 out: </author>
3.142 out: <author>
3.143 -out: Mikey Mouse
3.144 +out: Donald Duck
3.145 out: </author>
3.146 out: <author>
3.147 -out: Donald Duck
3.148 +out: Mikey Mouse
3.149 out: </author>
3.150 out: <index color='blue' cross-ref='no'>
3.151 out: <!-- MAUVE -->
3.152 @@ -318,12 +360,6 @@
3.153 out: </line>
3.154 out: </ref>
3.155 out: </index>
3.156 -out: <chapter>
3.157 -out: <number></number>
3.158 -out: <comment>
3.159 -out: Empty chapter
3.160 -out: </comment>
3.161 -out: </chapter>
3.162 out: <chapter title='First'>
3.163 out: <number></number>
3.164 out: <paragraph>
3.165 @@ -344,6 +380,12 @@
3.166 out: story began.
3.167 out: </paragraph>
3.168 out: </chapter>
3.169 +out: <chapter>
3.170 +out: <number></number>
3.171 +out: <comment>
3.172 +out: Empty chapter
3.173 +out: </comment>
3.174 +out: </chapter>
3.175 out: <summary length='123' lang='us' size='12'>
3.176 out: This book is about the life of a book spent between books who dreamed
3.177 out: to meet a fairy who could transform it into an XML book and travel