Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 150976 Details for
Bug 285889
XMLCollectionReferenceMapping does not handle composite primary keys
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
MOXy Test Cases
eclipselink.moxy.test.diff (text/plain), 279.06 KB, created by
Blaise Doughan
on 2009-10-30 15:59:53 EDT
(
hide
)
Description:
MOXy Test Cases
Filename:
MIME Type:
Creator:
Blaise Doughan
Created:
2009-10-30 15:59:53 EDT
Size:
279.06 KB
patch
obsolete
>Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml (revision 0) >@@ -0,0 +1,31 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id1>1</id1> >+ <ns:id2>A</ns:id2> >+ <team-member> >+ <fk1>2</fk1> >+ <ns:fk2>B</ns:fk2> >+ </team-member> >+ <team-member> >+ <fk1>3</fk1> >+ <ns:fk2>C</ns:fk2> >+ </team-member> >+ </employee> >+ <employee> >+ <id1>2</id1> >+ <ns:id2>B</ns:id2> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+ <employee> >+ <id1>3</id1> >+ <ns:id2>C</ns:id2> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml (revision 0) >@@ -0,0 +1,16 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id id1="1" ns:id2="A"/> >+ <team-member fk1="2" ns:fk2="B"/> >+ <team-member fk1="3" ns:fk2="C"/> >+ </employee> >+ <employee> >+ <id id1="2" ns:id2="B"/> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+ <employee> >+ <id id1="3" ns:id2="C"/> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml (revision 0) >@@ -0,0 +1,37 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id> >+ <id1>1</id1> >+ <ns:id2>A</ns:id2> >+ </id> >+ <team-member> >+ <fk1>2</fk1> >+ <ns:fk2>B</ns:fk2> >+ </team-member> >+ <team-member> >+ <fk1>3</fk1> >+ <ns:fk2>C</ns:fk2> >+ </team-member> >+ </employee> >+ <employee> >+ <id> >+ <id1>2</id1> >+ <ns:id2>B</ns:id2> >+ </id> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+ <employee> >+ <id> >+ <id1>3</id1> >+ <ns:id2>C</ns:id2> >+ </id> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml (revision 0) >@@ -0,0 +1,13 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee id1="1" ns:id2="A"> >+ <team-member fk1="2" ns:fk2="B"/> >+ <team-member fk1="3" ns:fk2="C"/> >+ </employee> >+ <employee id1="2" ns:id2="B"> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+ <employee id1="3" ns:id2="C"> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml (revision 0) >@@ -0,0 +1,16 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id id1="1" ns:id2="A"/> >+ <team-member fk1="2" ns:fk2="B"/> >+ <team-member fk1="3" ns:fk2="C"/> >+ </employee> >+ <employee> >+ <id id1="2" ns:id2="B"/> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+ <employee> >+ <id id1="3" ns:id2="C"/> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml (revision 0) >@@ -0,0 +1,37 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id> >+ <id1>1</id1> >+ <ns:id2>A</ns:id2> >+ </id> >+ <team-member> >+ <fk1>2</fk1> >+ <ns:fk2>B</ns:fk2> >+ </team-member> >+ <team-member> >+ <fk1>3</fk1> >+ <ns:fk2>C</ns:fk2> >+ </team-member> >+ </employee> >+ <employee> >+ <id> >+ <id1>2</id1> >+ <ns:id2>B</ns:id2> >+ </id> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+ <employee> >+ <id> >+ <id1>3</id1> >+ <ns:id2>C</ns:id2> >+ </id> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml (revision 0) >@@ -0,0 +1,13 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee id1="1" ns:id2="A"> >+ <team-member fk1="2" ns:fk2="B"/> >+ <team-member fk1="3" ns:fk2="C"/> >+ </employee> >+ <employee id1="2" ns:id2="B"> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+ <employee id1="3" ns:id2="C"> >+ <manager fk1="1" ns:fk2="A"/> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml (revision 0) >@@ -0,0 +1,31 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<ns:department xmlns:ns="urn:example"> >+ <employee> >+ <id1>1</id1> >+ <ns:id2>A</ns:id2> >+ <team-member> >+ <fk1>2</fk1> >+ <ns:fk2>B</ns:fk2> >+ </team-member> >+ <team-member> >+ <fk1>3</fk1> >+ <ns:fk2>C</ns:fk2> >+ </team-member> >+ </employee> >+ <employee> >+ <id1>2</id1> >+ <ns:id2>B</ns:id2> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+ <employee> >+ <id1>3</id1> >+ <ns:id2>C</ns:id2> >+ <manager> >+ <fk1>1</fk1> >+ <ns:fk2>A</ns:fk2> >+ </manager> >+ </employee> >+</ns:department> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0) >@@ -0,0 +1,34 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address id-city="Anyothertown" id-zip="X0X0X0"/> >+ <address id-city="Anytown" id-zip="X0X0X0"/> >+ <address id-city="Anytown" id-zip="Y0Y0Y0"/> >+ <address id-city="Sometown" id-zip="X0X0X0"/> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0) >@@ -0,0 +1,34 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address id-city="Anyothertown" id-zip="X0X0X0"/> >+ <address id-city="Anytown" id-zip="X0X0X0"/> >+ <address id-city="Anytown" id-zip="Y0Y0Y0"/> >+ <address id-city="Sometown" id-zip="X0X0X0"/> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml (revision 0) >@@ -0,0 +1,30 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0) >@@ -0,0 +1,46 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<ns:root xmlns:ns="urn:example"> >+ <ns:employee id="222"> >+ <ns:name>Joe Smith</ns:name> >+ <ns:address> >+ <ns:id-city>Anyothertown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>Y0Y0Y0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Sometown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ </ns:employee> >+ <ns:address aid="199"> >+ <ns:street>Some Other St.</ns:street> >+ <ns:city>Anyothertown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="99"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="11199"> >+ <ns:street>Another St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>Y0Y0Y0</ns:zip> >+ </ns:address> >+ <ns:address aid="1199"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Sometown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+</ns:root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml (revision 0) >@@ -0,0 +1,34 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address> >+ <id-city>Anyothertown Anytown Anytown Sometown</id-city> >+ <id-zip>X0X0X0 X0X0X0 Y0Y0Y0 X0X0X0</id-zip> >+ </address> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0) >@@ -0,0 +1,46 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address> >+ <id-city>Anyothertown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>Y0Y0Y0</id-zip> >+ </address> >+ <address> >+ <id-city>Sometown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0) >@@ -0,0 +1,48 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<ns:root xmlns:ns="urn:example"> >+ <ns:employee id="222"> >+ <ns:name>Joe Smith</ns:name> >+ <ns:grouping-element> >+ <ns:address> >+ <ns:id-city>Anyothertown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>Y0Y0Y0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Sometown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ </ns:grouping-element> >+ </ns:employee> >+ <ns:address aid="199"> >+ <ns:street>Some Other St.</ns:street> >+ <ns:city>Anyothertown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="99"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="11199"> >+ <ns:street>Another St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>Y0Y0Y0</ns:zip> >+ </ns:address> >+ <ns:address aid="1199"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Sometown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+</ns:root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml (revision 0) >@@ -0,0 +1,36 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <grouping-element> >+ <address> >+ <id-city>Anyothertown Anytown Anytown Sometown</id-city> >+ <id-zip>X0X0X0 X0X0X0 Y0Y0Y0 X0X0X0</id-zip> >+ </address> >+ </grouping-element> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0) >@@ -0,0 +1,48 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <grouping-element> >+ <address> >+ <id-city>Anyothertown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>Y0Y0Y0</id-zip> >+ </address> >+ <address> >+ <id-city>Sometown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ </grouping-element> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml (revision 0) >@@ -0,0 +1,30 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0) >@@ -0,0 +1,48 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<ns:root xmlns:ns="urn:example"> >+ <ns:employee id="222"> >+ <ns:name>Joe Smith</ns:name> >+ <ns:grouping-element> >+ <ns:address> >+ <ns:id-city>Anyothertown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>Y0Y0Y0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Sometown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ </ns:grouping-element> >+ </ns:employee> >+ <ns:address aid="199"> >+ <ns:street>Some Other St.</ns:street> >+ <ns:city>Anyothertown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="99"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="11199"> >+ <ns:street>Another St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>Y0Y0Y0</ns:zip> >+ </ns:address> >+ <ns:address aid="1199"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Sometown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+</ns:root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml (revision 0) >@@ -0,0 +1,36 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <grouping-element> >+ <address> >+ <id-city>Anyothertown Anytown Anytown Sometown</id-city> >+ <id-zip>X0X0X0 X0X0X0 Y0Y0Y0 X0X0X0</id-zip> >+ </address> >+ </grouping-element> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0) >@@ -0,0 +1,48 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <grouping-element> >+ <address> >+ <id-city>Anyothertown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>Y0Y0Y0</id-zip> >+ </address> >+ <address> >+ <id-city>Sometown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ </grouping-element> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0) >@@ -0,0 +1,46 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<ns:root xmlns:ns="urn:example"> >+ <ns:employee id="222"> >+ <ns:name>Joe Smith</ns:name> >+ <ns:address> >+ <ns:id-city>Anyothertown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Anytown</ns:id-city> >+ <ns:id-zip>Y0Y0Y0</ns:id-zip> >+ </ns:address> >+ <ns:address> >+ <ns:id-city>Sometown</ns:id-city> >+ <ns:id-zip>X0X0X0</ns:id-zip> >+ </ns:address> >+ </ns:employee> >+ <ns:address aid="199"> >+ <ns:street>Some Other St.</ns:street> >+ <ns:city>Anyothertown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="99"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+ <ns:address aid="11199"> >+ <ns:street>Another St.</ns:street> >+ <ns:city>Anytown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>Y0Y0Y0</ns:zip> >+ </ns:address> >+ <ns:address aid="1199"> >+ <ns:street>Some St.</ns:street> >+ <ns:city>Sometown</ns:city> >+ <ns:country>Canada</ns:country> >+ <ns:zip>X0X0X0</ns:zip> >+ </ns:address> >+</ns:root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml (revision 0) >@@ -0,0 +1,34 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address> >+ <id-city>Anyothertown Anytown Anytown Sometown</id-city> >+ <id-zip>X0X0X0 X0X0X0 Y0Y0Y0 X0X0X0</id-zip> >+ </address> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0) >@@ -0,0 +1,46 @@ >+<?xml version="1.0" encoding="UTF-8" standalone="no"?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <address> >+ <id-city>Anyothertown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ <address> >+ <id-city>Anytown</id-city> >+ <id-zip>Y0Y0Y0</id-zip> >+ </address> >+ <address> >+ <id-city>Sometown</id-city> >+ <id-zip>X0X0X0</id-zip> >+ </address> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0) >@@ -0,0 +1,36 @@ >+<?xml version='1.0' encoding='UTF-8'?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <addresses> >+ <address-ref address-zip="X0X0X0" address-city="Anyothertown"/> >+ <address-ref address-zip="X0X0X0" address-city="Anytown"/> >+ <address-ref address-zip="Y0Y0Y0" address-city="Anytown" /> >+ <address-ref address-zip="X0X0X0" address-city="Sometown"/> >+ </addresses> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml >=================================================================== >--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0) >+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0) >@@ -0,0 +1,36 @@ >+<?xml version='1.0' encoding='UTF-8'?> >+<root> >+ <employee id="222"> >+ <name>Joe Smith</name> >+ <addresses> >+ <address-ref address-zip="X0X0X0" address-city="Anyothertown"/> >+ <address-ref address-zip="X0X0X0" address-city="Anytown"/> >+ <address-ref address-zip="Y0Y0Y0" address-city="Anytown" /> >+ <address-ref address-zip="X0X0X0" address-city="Sometown"/> >+ </addresses> >+ </employee> >+ <address aid="199"> >+ <street>Some Other St.</street> >+ <city>Anyothertown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="99"> >+ <street>Some St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+ <address aid="11199"> >+ <street>Another St.</street> >+ <city>Anytown</city> >+ <country>Canada</country> >+ <zip>Y0Y0Y0</zip> >+ </address> >+ <address aid="1199"> >+ <street>Some St.</street> >+ <city>Sometown</city> >+ <country>Canada</country> >+ <zip>X0X0X0</zip> >+ </address> >+</root> >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java (revision 0) >@@ -0,0 +1,83 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+public class Employee { >+ >+ private EmployeeID id; >+ private Employee manager; >+ private List<Employee> teamMembers; >+ >+ public Employee() { >+ teamMembers = new ArrayList(); >+ } >+ >+ public Employee getManager() { >+ return manager; >+ } >+ >+ public EmployeeID getId() { >+ return id; >+ } >+ >+ public void setId(EmployeeID id) { >+ this.id = id; >+ } >+ >+ public void setManager(Employee manager) { >+ this.manager = manager; >+ } >+ >+ public List<Employee> getTeamMembers() { >+ return teamMembers; >+ } >+ >+ public void setTeamMembers(List<Employee> teamMembers) { >+ this.teamMembers = teamMembers; >+ } >+ >+ @Override >+ public boolean equals(Object object) { >+ try { >+ Employee test = (Employee) object; >+ if(!id.equals(test.getId())) { >+ return false; >+ } >+ if(null == manager) { >+ if(null != test.getManager()) { >+ return false; >+ } >+ } else { >+ if(!manager.getId().equals(test.getManager().getId())) { >+ return false; >+ } >+ } >+ int teamMembersSize = teamMembers.size(); >+ if(teamMembersSize != test.getTeamMembers().size()) { >+ return false; >+ } >+ for(int x=0; x<teamMembersSize; x++) { >+ if(!teamMembers.get(x).getId().equals(test.getTeamMembers().get(x).getId())) { >+ return false; >+ } >+ } >+ return true; >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java (revision 0) >@@ -0,0 +1,55 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.testing.oxm.mappings.XMLMappingTestCases; >+ >+public class CompositeKeyClassTestCases extends XMLMappingTestCases { >+ >+ public CompositeKeyClassTestCases(String name) throws Exception { >+ super(name); >+ } >+ >+ @Override >+ protected Object getControlObject() { >+ Department department = new Department(); >+ >+ Employee employee1 = new Employee(); >+ EmployeeID id1 = new EmployeeID(); >+ id1.setId1(1); >+ id1.setId2("A"); >+ employee1.setId(id1); >+ department.getEmployees().add(employee1); >+ >+ Employee employee2 = new Employee(); >+ EmployeeID id2 = new EmployeeID(); >+ id2.setId1(2); >+ id2.setId2("B"); >+ employee2.setId(id2); >+ employee2.setManager(employee1); >+ employee1.getTeamMembers().add(employee2); >+ department.getEmployees().add(employee2); >+ >+ Employee employee3 = new Employee(); >+ EmployeeID id3 = new EmployeeID(); >+ id3.setId1(3); >+ id3.setId2("C"); >+ employee3.setId(id3); >+ employee3.setManager(employee1); >+ employee1.getTeamMembers().add(employee3); >+ department.getEmployees().add(employee3); >+ >+ return department; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class ElementProject extends Project { >+ >+ public ElementProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id/id1/text()"); >+ descriptor.addPrimaryKeyFieldName("id/ns:id2/text()"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("id"); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id/id1/text()"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "id/ns:id2/text()"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id/id1/text()"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "id/ns:id2/text()"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("id1/text()"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("ns:id2/text()"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class AttributeTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml"; >+ >+ public AttributeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new AttributeProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class SelfElementTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml"; >+ >+ public SelfElementTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new SelfElementProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java (revision 0) >@@ -0,0 +1,44 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+public class Department { >+ >+ private List<Employee> employees; >+ >+ public Department() { >+ employees = new ArrayList(); >+ } >+ >+ public List<Employee> getEmployees() { >+ return employees; >+ } >+ >+ public void setEmployees(List<Employee> employees) { >+ this.employees = employees; >+ } >+ >+ @Override >+ public boolean equals(Object object) { >+ try { >+ Department test = (Department) object; >+ return employees.equals(test.getEmployees()); >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class SelfAttributeProject extends Project { >+ >+ public SelfAttributeProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("@id1"); >+ descriptor.addPrimaryKeyFieldName("@ns:id2"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("."); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@fk1", "@id1"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@ns:fk2", "@ns:id2"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@fk1", "@id1"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@ns:fk2", "@ns:id2"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("@id1"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("@ns:id2"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class ElementTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml"; >+ >+ public ElementTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new ElementProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class AttributeProject extends Project { >+ >+ public AttributeProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id/@id1"); >+ descriptor.addPrimaryKeyFieldName("id/@ns:id2"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("id"); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@fk1", "id/@id1"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@ns:fk2", "id/@ns:id2"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@fk1", "id/@id1"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@ns:fk2", "id/@ns:id2"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("@id1"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("@ns:id2"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class SelfElementProject extends Project { >+ >+ public SelfElementProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id1/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:id2/text()"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("."); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id1/text()"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "ns:id2/text()"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id1/text()"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "ns:id2/text()"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("id1/text()"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("ns:id2/text()"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java (revision 0) >@@ -0,0 +1,30 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import junit.framework.Test; >+import junit.framework.TestCase; >+import junit.framework.TestSuite; >+ >+public class CompositeKeyClassTestSuite extends TestCase { >+ >+ public static Test suite() { >+ TestSuite suite = new TestSuite("Key Class Test Cases"); >+ suite.addTestSuite(AttributeTestCases.class); >+ suite.addTestSuite(ElementTestCases.class); >+ suite.addTestSuite(SelfAttributeTestCases.class); >+ suite.addTestSuite(SelfElementTestCases.class); >+ return suite; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java (revision 0) >@@ -0,0 +1,49 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class EmployeeID { >+ >+ private int id1; >+ private String id2; >+ >+ public int getId1() { >+ return id1; >+ } >+ >+ public void setId1(int id1) { >+ this.id1 = id1; >+ } >+ >+ public String getId2() { >+ return id2; >+ } >+ >+ public void setId2(String id2) { >+ this.id2 = id2; >+ } >+ >+ @Override >+ public boolean equals(Object o) { >+ try { >+ EmployeeID test = (EmployeeID) o; >+ if(id1 != test.getId1()) { >+ return false; >+ } >+ return id2.equals(test.getId2()); >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class SelfAttributeTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml"; >+ >+ public SelfAttributeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new SelfAttributeProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class AttributeProject extends Project { >+ >+ public AttributeProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id/@id1"); >+ descriptor.addPrimaryKeyFieldName("id/@ns:id2"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("id"); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@fk1", "id/@id1"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@ns:fk2", "id/@ns:id2"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@fk1", "id/@id1"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@ns:fk2", "id/@ns:id2"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("@id1"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("@ns:id2"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/AttributeTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class AttributeTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/attribute.xml"; >+ >+ public AttributeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new AttributeProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestCases.java (revision 0) >@@ -0,0 +1,55 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.testing.oxm.mappings.XMLMappingTestCases; >+ >+public class CompositeKeyClassTestCases extends XMLMappingTestCases { >+ >+ public CompositeKeyClassTestCases(String name) throws Exception { >+ super(name); >+ } >+ >+ @Override >+ protected Object getControlObject() { >+ Department department = new Department(); >+ >+ Employee employee1 = new Employee(); >+ EmployeeID id1 = new EmployeeID(); >+ id1.setId1(1); >+ id1.setId2("A"); >+ employee1.setId(id1); >+ department.getEmployees().add(employee1); >+ >+ Employee employee2 = new Employee(); >+ EmployeeID id2 = new EmployeeID(); >+ id2.setId1(2); >+ id2.setId2("B"); >+ employee2.setId(id2); >+ employee2.setManager(employee1); >+ employee1.getTeamMembers().add(employee2); >+ department.getEmployees().add(employee2); >+ >+ Employee employee3 = new Employee(); >+ EmployeeID id3 = new EmployeeID(); >+ id3.setId1(3); >+ id3.setId2("C"); >+ employee3.setId(id3); >+ employee3.setManager(employee1); >+ employee1.getTeamMembers().add(employee3); >+ department.getEmployees().add(employee3); >+ >+ return department; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/CompositeKeyClassTestSuite.java (revision 0) >@@ -0,0 +1,30 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import junit.framework.Test; >+import junit.framework.TestCase; >+import junit.framework.TestSuite; >+ >+public class CompositeKeyClassTestSuite extends TestCase { >+ >+ public static Test suite() { >+ TestSuite suite = new TestSuite("Key Class Test Cases"); >+ suite.addTestSuite(AttributeTestCases.class); >+ suite.addTestSuite(ElementTestCases.class); >+ suite.addTestSuite(SelfAttributeTestCases.class); >+ suite.addTestSuite(SelfElementTestCases.class); >+ return suite; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Department.java (revision 0) >@@ -0,0 +1,44 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+public class Department { >+ >+ private List<Employee> employees; >+ >+ public Department() { >+ employees = new ArrayList(); >+ } >+ >+ public List<Employee> getEmployees() { >+ return employees; >+ } >+ >+ public void setEmployees(List<Employee> employees) { >+ this.employees = employees; >+ } >+ >+ @Override >+ public boolean equals(Object object) { >+ try { >+ Department test = (Department) object; >+ return employees.equals(test.getEmployees()); >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class ElementProject extends Project { >+ >+ public ElementProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id/id1/text()"); >+ descriptor.addPrimaryKeyFieldName("id/ns:id2/text()"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("id"); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id/id1/text()"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "id/ns:id2/text()"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id/id1/text()"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "id/ns:id2/text()"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("id1/text()"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("ns:id2/text()"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/ElementTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class ElementTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/element.xml"; >+ >+ public ElementTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new ElementProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/Employee.java (revision 0) >@@ -0,0 +1,83 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+public class Employee { >+ >+ private EmployeeID id; >+ private Employee manager; >+ private List<Employee> teamMembers; >+ >+ public Employee() { >+ teamMembers = new ArrayList(); >+ } >+ >+ public Employee getManager() { >+ return manager; >+ } >+ >+ public EmployeeID getId() { >+ return id; >+ } >+ >+ public void setId(EmployeeID id) { >+ this.id = id; >+ } >+ >+ public void setManager(Employee manager) { >+ this.manager = manager; >+ } >+ >+ public List<Employee> getTeamMembers() { >+ return teamMembers; >+ } >+ >+ public void setTeamMembers(List<Employee> teamMembers) { >+ this.teamMembers = teamMembers; >+ } >+ >+ @Override >+ public boolean equals(Object object) { >+ try { >+ Employee test = (Employee) object; >+ if(!id.equals(test.getId())) { >+ return false; >+ } >+ if(null == manager) { >+ if(null != test.getManager()) { >+ return false; >+ } >+ } else { >+ if(!manager.getId().equals(test.getManager().getId())) { >+ return false; >+ } >+ } >+ int teamMembersSize = teamMembers.size(); >+ if(teamMembersSize != test.getTeamMembers().size()) { >+ return false; >+ } >+ for(int x=0; x<teamMembersSize; x++) { >+ if(!teamMembers.get(x).getId().equals(test.getTeamMembers().get(x).getId())) { >+ return false; >+ } >+ } >+ return true; >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/EmployeeID.java (revision 0) >@@ -0,0 +1,49 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class EmployeeID { >+ >+ private int id1; >+ private String id2; >+ >+ public int getId1() { >+ return id1; >+ } >+ >+ public void setId1(int id1) { >+ this.id1 = id1; >+ } >+ >+ public String getId2() { >+ return id2; >+ } >+ >+ public void setId2(String id2) { >+ this.id2 = id2; >+ } >+ >+ @Override >+ public boolean equals(Object o) { >+ try { >+ EmployeeID test = (EmployeeID) o; >+ if(id1 != test.getId1()) { >+ return false; >+ } >+ return id2.equals(test.getId2()); >+ } catch(ClassCastException e) { >+ return false; >+ } >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class SelfAttributeProject extends Project { >+ >+ public SelfAttributeProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("@id1"); >+ descriptor.addPrimaryKeyFieldName("@ns:id2"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("."); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@fk1", "@id1"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/@ns:fk2", "@ns:id2"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@fk1", "@id1"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/@ns:fk2", "@ns:id2"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("@id1"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("@ns:id2"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfAttributeTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class SelfAttributeTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-attribute.xml"; >+ >+ public SelfAttributeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new SelfAttributeProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementProject.java (revision 0) >@@ -0,0 +1,104 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping; >+import org.eclipse.persistence.sessions.Project; >+ >+public class SelfElementProject extends Project { >+ >+ public SelfElementProject() { >+ this.addDescriptor(getDepartmentDescriptor()); >+ this.addDescriptor(getEmployeeDescriptor()); >+ this.addDescriptor(getEmployeeIDDescriptor()); >+ } >+ >+ private XMLDescriptor getDepartmentDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Department.class); >+ descriptor.setDefaultRootElement("ns:department"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeCollectionMapping employeesMapping = new XMLCompositeCollectionMapping(); >+ employeesMapping.setAttributeName("employees"); >+ employeesMapping.setXPath("employee"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.addPrimaryKeyFieldName("id1/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:id2/text()"); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("."); >+ idMapping.setReferenceClass(EmployeeID.class); >+ descriptor.addMapping(idMapping); >+ >+ XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping(); >+ managerMapping.setAttributeName("manager"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id1/text()"); >+ managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "ns:id2/text()"); >+ managerMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(managerMapping); >+ >+ XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping(); >+ employeesMapping.setAttributeName("teamMembers"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id1/text()"); >+ employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "ns:id2/text()"); >+ employeesMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(employeesMapping); >+ >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeIDDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(EmployeeID.class); >+ >+ NamespaceResolver namespaceResolver = new NamespaceResolver(); >+ namespaceResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(namespaceResolver); >+ >+ XMLDirectMapping id1Mapping = new XMLDirectMapping(); >+ id1Mapping.setAttributeName("id1"); >+ id1Mapping.setXPath("id1/text()"); >+ descriptor.addMapping(id1Mapping); >+ >+ XMLDirectMapping id2Mapping = new XMLDirectMapping(); >+ id2Mapping.setAttributeName("id2"); >+ id2Mapping.setXPath("ns:id2/text()"); >+ descriptor.addMapping(id2Mapping); >+ >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/SelfElementTestCases.java (revision 0) >@@ -0,0 +1,25 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 29/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.compositekeyclass; >+ >+public class SelfElementTestCases extends CompositeKeyClassTestCases { >+ >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/compositekeyclass/self-element.xml"; >+ >+ public SelfElementTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new SelfElementProject()); >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java (working copy) >@@ -26,88 +26,89 @@ > import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; > > public class CompositeAttributeKeysProject extends Project { >- public CompositeAttributeKeysProject() { >- addDescriptor(getRootDescriptor()); >- addDescriptor(getEmployeeDescriptor()); >- addDescriptor(getAddressDescriptor()); >- } > >- private XMLDescriptor getRootDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Root.class); >- descriptor.setDefaultRootElement("root"); >- // create employee mapping >- XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >- empMapping.setAttributeName("employee"); >- empMapping.setXPath("employee"); >- empMapping.setReferenceClass(Employee.class); >- descriptor.addMapping(empMapping); >- // create address mapping >- XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >- addMapping.setAttributeName("addresses"); >- addMapping.setXPath("address"); >- addMapping.setReferenceClass(Address.class); >- descriptor.addMapping(addMapping); >- return descriptor; >- } >- >- private XMLDescriptor getEmployeeDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Employee.class); >- descriptor.setDefaultRootElement("employee"); >- // create id mapping >- XMLDirectMapping idMapping = new XMLDirectMapping(); >- idMapping.setAttributeName("id"); >- idMapping.setXPath("@id"); >- descriptor.addMapping(idMapping); >- // create name mapping >- XMLDirectMapping nameMapping = new XMLDirectMapping(); >- nameMapping.setAttributeName("name"); >- nameMapping.setXPath("name/text()"); >- descriptor.addMapping(nameMapping); >- // create address mapping >+ public CompositeAttributeKeysProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping > XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); > addressMapping.useCollectionClass(ArrayList.class); > addressMapping.setAttributeName("addresses"); > addressMapping.setReferenceClass(Address.class); >- addressMapping.addSourceToTargetKeyFieldAssociation("@address-city", "city/text()"); >- addressMapping.addSourceToTargetKeyFieldAssociation("@address-zip", "zip/text()"); >- addressMapping.setUsesSingleNode(true); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-city", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-zip", "zip/text()"); > descriptor.addMapping(addressMapping); >- return descriptor; >- } >+ return descriptor; >+ } > >- private XMLDescriptor getAddressDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Address.class); >- descriptor.addPrimaryKeyFieldName("city/text()"); >- descriptor.addPrimaryKeyFieldName("zip/text()"); >- descriptor.setDefaultRootElement("address"); >- // create id mapping >- XMLDirectMapping idMapping = new XMLDirectMapping(); >- idMapping.setAttributeName("id"); >- idMapping.setXPath("@aid"); >- descriptor.addMapping(idMapping); >- // create street mapping >- XMLDirectMapping streetMapping = new XMLDirectMapping(); >- streetMapping.setAttributeName("street"); >- streetMapping.setXPath("street/text()"); >- descriptor.addMapping(streetMapping); >- // create city mapping >- XMLDirectMapping cityMapping = new XMLDirectMapping(); >- cityMapping.setAttributeName("city"); >- cityMapping.setXPath("city/text()"); >- descriptor.addMapping(cityMapping); >- // create country mapping >- XMLDirectMapping countryMapping = new XMLDirectMapping(); >- countryMapping.setAttributeName("country"); >- countryMapping.setXPath("country/text()"); >- descriptor.addMapping(countryMapping); >- // create zip mapping >- XMLDirectMapping zipMapping = new XMLDirectMapping(); >- zipMapping.setAttributeName("zip"); >- zipMapping.setXPath("zip/text()"); >- descriptor.addMapping(zipMapping); >- return descriptor; >- } >-} >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java (working copy) >@@ -20,16 +20,16 @@ > import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; > > public class CompositeAttributeKeysTestCases extends KeyBasedMappingTestCases { >- private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml"; >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml"; > >- public CompositeAttributeKeysTestCases(String name) throws Exception { >- super(name); >- setControlDocument(XML_RESOURCE); >- setProject(new CompositeAttributeKeysProject()); >- } >+ public CompositeAttributeKeysTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeAttributeKeysProject()); >+ } > >- protected Object getControlObject() { >- ArrayList addresses = new ArrayList(); >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); > > Address address = new Address(); > address.id = CONTROL_ADD_ID_1; >@@ -55,63 +55,23 @@ > address.zip = CONTROL_ADD_ZIP_3; > addresses.add(address); > >- Employee employee = new Employee(); >- employee.id = CONTROL_ID; >- employee.name = CONTROL_NAME; >- employee.addresses = addresses; >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); > >- Root root = new Root(); >- root.employee = employee; >- return root; >- } >- >- public Object getWriteControlObject() { >- ArrayList rootAddresses = new ArrayList(); >- ArrayList empAddresses = new ArrayList(); >- >- Address address = new Address(); >- address.id = CONTROL_ADD_ID_1; >- address.street = CONTROL_ADD_STREET_1; >- address.city = CONTROL_ADD_CITY_1; >- address.country = CONTROL_ADD_COUNTRY_1; >- address.zip = CONTROL_ADD_ZIP_1; >- empAddresses.add(address); >- rootAddresses.add(address); >- >- address = new Address(); >- address.id = CONTROL_ADD_ID_2; >- address.street = CONTROL_ADD_STREET_2; >- address.city = CONTROL_ADD_CITY_2; >- address.country = CONTROL_ADD_COUNTRY_2; >- address.zip = CONTROL_ADD_ZIP_2; >- empAddresses.add(address); >- rootAddresses.add(address); >- >- address = new Address(); >- address.id = CONTROL_ADD_ID_3; >- address.street = CONTROL_ADD_STREET_3; >- address.city = CONTROL_ADD_CITY_3; >- address.country = CONTROL_ADD_COUNTRY_3; >- address.zip = CONTROL_ADD_ZIP_3; >- empAddresses.add(address); >- rootAddresses.add(address); >- >- address = new Address(); >- address.id = CONTROL_ADD_ID_4; >- address.street = CONTROL_ADD_STREET_4; >- address.city = CONTROL_ADD_CITY_4; >- address.country = CONTROL_ADD_COUNTRY_4; >- address.zip = CONTROL_ADD_ZIP_4; >- rootAddresses.add(address); >- > Employee employee = new Employee(); > employee.id = CONTROL_ID; > employee.name = CONTROL_NAME; >- employee.addresses = empAddresses; >+ employee.addresses = addresses; > >- Root root = new Root(); >- root.employee = employee; >- root.addresses = rootAddresses; >- return root; >- } >-} >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java (working copy) >@@ -16,12 +16,30 @@ > import junit.framework.TestCase; > import junit.framework.TestSuite; > import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.attributekey.CompositeAttributeKeysTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyEmptyTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyNSTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeySingleNodeTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingEmptyTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingNSTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingSingleNodeTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingTestCases; > import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.nestedattributekey.NestedAttributeKeyTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyWithGroupingTestCases; > > public class CompositeKeyTestCases extends TestCase { > public static Test suite() { > TestSuite suite = new TestSuite("Multiple targets with composite key test suite"); > suite.addTestSuite(CompositeAttributeKeysTestCases.class); >+ suite.addTestSuite(CompositeElementKeyTestCases.class); >+ suite.addTestSuite(CompositeElementKeyWithGroupingTestCases.class); >+ suite.addTestSuite(CompositeElementKeyNSTestCases.class); >+ suite.addTestSuite(CompositeElementKeyWithGroupingNSTestCases.class); >+ suite.addTestSuite(CompositeElementKeyEmptyTestCases.class); >+ suite.addTestSuite(CompositeElementKeyWithGroupingEmptyTestCases.class); >+ suite.addTestSuite(CompositeElementKeySingleNodeTestCases.class); >+ suite.addTestSuite(CompositeElementKeyWithGroupingSingleNodeTestCases.class); > suite.addTestSuite(NestedAttributeKeyTestCases.class); > return suite; > } >@@ -30,4 +48,5 @@ > String[] arguments = { "-c", "org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases"}; > junit.textui.TestRunner.main(arguments); > } >+ > } >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0) >@@ -0,0 +1,114 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingProject extends Project { >+ >+ public CompositeElementKeyWithGroupingProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java (revision 0) >@@ -0,0 +1,76 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 23/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyEmptyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml"; >+ >+ public CompositeElementKeyEmptyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingSingleNodeTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml"; >+ >+ public CompositeElementKeyWithGroupingSingleNodeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingSingleNodeProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml"; >+ >+ public CompositeElementKeyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0) >@@ -0,0 +1,127 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingNSProject extends Project { >+ >+ public CompositeElementKeyWithGroupingNSProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("ns:root"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("ns:employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("ns:address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("ns:name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("ns:grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("ns:city/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("ns:street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("ns:city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("ns:country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("ns:zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java (revision 0) >@@ -0,0 +1,114 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeySingleNodeProject extends Project { >+ >+ public CompositeElementKeySingleNodeProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setUsesSingleNode(true); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml"; >+ >+ public CompositeElementKeyNSTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyNSProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java (revision 0) >@@ -0,0 +1,76 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 23/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingEmptyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml"; >+ >+ public CompositeElementKeyWithGroupingEmptyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml"; >+ >+ public CompositeElementKeyWithGroupingTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java (revision 0) >@@ -0,0 +1,115 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingSingleNodeProject extends Project { >+ >+ public CompositeElementKeyWithGroupingSingleNodeProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setUsesSingleNode(true); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0) >@@ -0,0 +1,113 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyProject extends Project { >+ >+ public CompositeElementKeyProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml"; >+ >+ public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingNSProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeySingleNodeTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml"; >+ >+ public CompositeElementKeySingleNodeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeySingleNodeProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0) >@@ -0,0 +1,126 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyNSProject extends Project { >+ >+ public CompositeElementKeyNSProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("ns:root"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("ns:employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("ns:address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("ns:employee"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("ns:name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("ns:city/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:zip/text()"); >+ descriptor.setDefaultRootElement("ns:address"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("ns:street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("ns:city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("ns:country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("ns:zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyEmptyTestCases.java (revision 0) >@@ -0,0 +1,76 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 23/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyEmptyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml"; >+ >+ public CompositeElementKeyEmptyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0) >@@ -0,0 +1,126 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyNSProject extends Project { >+ >+ public CompositeElementKeyNSProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("ns:root"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("ns:employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("ns:address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("ns:employee"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("ns:name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("ns:city/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:zip/text()"); >+ descriptor.setDefaultRootElement("ns:address"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("ns:street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("ns:city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("ns:country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("ns:zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml"; >+ >+ public CompositeElementKeyNSTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyNSProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0) >@@ -0,0 +1,113 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyProject extends Project { >+ >+ public CompositeElementKeyProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeProject.java (revision 0) >@@ -0,0 +1,114 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeySingleNodeProject extends Project { >+ >+ public CompositeElementKeySingleNodeProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setUsesSingleNode(true); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeySingleNodeTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeySingleNodeTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-single.xml"; >+ >+ public CompositeElementKeySingleNodeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeySingleNodeProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml"; >+ >+ public CompositeElementKeyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingEmptyTestCases.java (revision 0) >@@ -0,0 +1,76 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 23/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingEmptyTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-empty.xml"; >+ >+ public CompositeElementKeyWithGroupingEmptyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0) >@@ -0,0 +1,127 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.NamespaceResolver; >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingNSProject extends Project { >+ >+ public CompositeElementKeyWithGroupingNSProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("ns:root"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("ns:employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("ns:address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("ns:name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("ns:grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("ns:city/text()"); >+ descriptor.addPrimaryKeyFieldName("ns:zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create namespace resolver >+ NamespaceResolver nsResolver = new NamespaceResolver(); >+ nsResolver.put("ns", "urn:example"); >+ descriptor.setNamespaceResolver(nsResolver); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("ns:street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("ns:city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("ns:country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("ns:zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 22/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml"; >+ >+ public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingNSProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0) >@@ -0,0 +1,114 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingProject extends Project { >+ >+ public CompositeElementKeyWithGroupingProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeProject.java (revision 0) >@@ -0,0 +1,115 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.oxm.XMLDescriptor; >+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; >+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping; >+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; >+import org.eclipse.persistence.sessions.Project; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingSingleNodeProject extends Project { >+ >+ public CompositeElementKeyWithGroupingSingleNodeProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } >+ >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setUsesSingleNode(true); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("grouping-element"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()"); >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); >+ descriptor.addPrimaryKeyFieldName("city/text()"); >+ descriptor.addPrimaryKeyFieldName("zip/text()"); >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingSingleNodeTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 27/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingSingleNodeTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-single.xml"; >+ >+ public CompositeElementKeyWithGroupingSingleNodeTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingSingleNodeProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0) >@@ -0,0 +1,77 @@ >+/******************************************************************************* >+* Copyright (c) 1998, 2009 Oracle. All rights reserved. >+* This program and the accompanying materials are made available under the >+* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 >+* which accompanies this distribution. >+* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html >+* and the Eclipse Distribution License is available at >+* http://www.eclipse.org/org/documents/edl-v10.php. >+* >+* Contributors: >+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation >+******************************************************************************/ >+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey; >+ >+import java.util.ArrayList; >+ >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root; >+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee; >+ >+public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases { >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml"; >+ >+ public CompositeElementKeyWithGroupingTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new CompositeElementKeyWithGroupingProject()); >+ } >+ >+ protected Object getControlObject() { >+ ArrayList addresses = new ArrayList(4); >+ >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); >+ >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); >+ >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; >+ root.addresses = addresses; >+ return root; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java (working copy) >@@ -26,88 +26,89 @@ > import java.util.ArrayList; > > public class NestedAttributeKeyProject extends Project { >- public NestedAttributeKeyProject() { >- addDescriptor(getRootDescriptor()); >- addDescriptor(getEmployeeDescriptor()); >- addDescriptor(getAddressDescriptor()); >- } >+ public NestedAttributeKeyProject() { >+ addDescriptor(getRootDescriptor()); >+ addDescriptor(getEmployeeDescriptor()); >+ addDescriptor(getAddressDescriptor()); >+ } > >- private XMLDescriptor getRootDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Root.class); >- descriptor.setDefaultRootElement("root"); >- // create employee mapping >- XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >- empMapping.setAttributeName("employee"); >- empMapping.setXPath("employee"); >- empMapping.setReferenceClass(Employee.class); >- descriptor.addMapping(empMapping); >- // create address mapping >- XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >- addMapping.setAttributeName("addresses"); >- addMapping.setXPath("address"); >- addMapping.setReferenceClass(Address.class); >- descriptor.addMapping(addMapping); >- return descriptor; >- } >- >- private XMLDescriptor getEmployeeDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Employee.class); >- descriptor.setDefaultRootElement("employee"); >- // create id mapping >- XMLDirectMapping idMapping = new XMLDirectMapping(); >- idMapping.setAttributeName("id"); >- idMapping.setXPath("@id"); >- descriptor.addMapping(idMapping); >- // create name mapping >- XMLDirectMapping nameMapping = new XMLDirectMapping(); >- nameMapping.setAttributeName("name"); >- nameMapping.setXPath("name/text()"); >- descriptor.addMapping(nameMapping); >- // create address mapping >- XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >- addressMapping.useCollectionClass(ArrayList.class); >- addressMapping.setAttributeName("addresses"); >- addressMapping.setReferenceClass(Address.class); >- addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-city", "city/text()"); >- addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-zip", "zip/text()"); >+ private XMLDescriptor getRootDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Root.class); >+ descriptor.setDefaultRootElement("root"); >+ // create employee mapping >+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); >+ empMapping.setAttributeName("employee"); >+ empMapping.setXPath("employee"); >+ empMapping.setReferenceClass(Employee.class); >+ descriptor.addMapping(empMapping); >+ // create address mapping >+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); >+ addMapping.setAttributeName("addresses"); >+ addMapping.setXPath("address"); >+ addMapping.setReferenceClass(Address.class); >+ descriptor.addMapping(addMapping); >+ return descriptor; >+ } >+ >+ private XMLDescriptor getEmployeeDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Employee.class); >+ descriptor.setDefaultRootElement("employee"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@id"); >+ descriptor.addMapping(idMapping); >+ // create name mapping >+ XMLDirectMapping nameMapping = new XMLDirectMapping(); >+ nameMapping.setAttributeName("name"); >+ nameMapping.setXPath("name/text()"); >+ descriptor.addMapping(nameMapping); >+ // create address mapping >+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping(); >+ addressMapping.useCollectionClass(ArrayList.class); >+ addressMapping.setAttributeName("addresses"); >+ addressMapping.setXPath("addresses"); >+ addressMapping.setReferenceClass(Address.class); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-city", "city/text()"); >+ addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-zip", "zip/text()"); > addressMapping.setUsesSingleNode(false); >- descriptor.addMapping(addressMapping); >- return descriptor; >- } >+ descriptor.addMapping(addressMapping); >+ return descriptor; >+ } > >- private XMLDescriptor getAddressDescriptor() { >- XMLDescriptor descriptor = new XMLDescriptor(); >- descriptor.setJavaClass(Address.class); >+ private XMLDescriptor getAddressDescriptor() { >+ XMLDescriptor descriptor = new XMLDescriptor(); >+ descriptor.setJavaClass(Address.class); > descriptor.addPrimaryKeyFieldName("city/text()"); > descriptor.addPrimaryKeyFieldName("zip/text()"); >- descriptor.setDefaultRootElement("address"); >- // create id mapping >- XMLDirectMapping idMapping = new XMLDirectMapping(); >- idMapping.setAttributeName("id"); >- idMapping.setXPath("@aid"); >- descriptor.addMapping(idMapping); >- // create street mapping >- XMLDirectMapping streetMapping = new XMLDirectMapping(); >- streetMapping.setAttributeName("street"); >- streetMapping.setXPath("street/text()"); >- descriptor.addMapping(streetMapping); >- // create city mapping >- XMLDirectMapping cityMapping = new XMLDirectMapping(); >- cityMapping.setAttributeName("city"); >- cityMapping.setXPath("city/text()"); >- descriptor.addMapping(cityMapping); >- // create country mapping >- XMLDirectMapping countryMapping = new XMLDirectMapping(); >- countryMapping.setAttributeName("country"); >- countryMapping.setXPath("country/text()"); >- descriptor.addMapping(countryMapping); >- // create zip mapping >- XMLDirectMapping zipMapping = new XMLDirectMapping(); >- zipMapping.setAttributeName("zip"); >- zipMapping.setXPath("zip/text()"); >- descriptor.addMapping(zipMapping); >- return descriptor; >- } >+ descriptor.setDefaultRootElement("address"); >+ // create id mapping >+ XMLDirectMapping idMapping = new XMLDirectMapping(); >+ idMapping.setAttributeName("id"); >+ idMapping.setXPath("@aid"); >+ descriptor.addMapping(idMapping); >+ // create street mapping >+ XMLDirectMapping streetMapping = new XMLDirectMapping(); >+ streetMapping.setAttributeName("street"); >+ streetMapping.setXPath("street/text()"); >+ descriptor.addMapping(streetMapping); >+ // create city mapping >+ XMLDirectMapping cityMapping = new XMLDirectMapping(); >+ cityMapping.setAttributeName("city"); >+ cityMapping.setXPath("city/text()"); >+ descriptor.addMapping(cityMapping); >+ // create country mapping >+ XMLDirectMapping countryMapping = new XMLDirectMapping(); >+ countryMapping.setAttributeName("country"); >+ countryMapping.setXPath("country/text()"); >+ descriptor.addMapping(countryMapping); >+ // create zip mapping >+ XMLDirectMapping zipMapping = new XMLDirectMapping(); >+ zipMapping.setAttributeName("zip"); >+ zipMapping.setXPath("zip/text()"); >+ descriptor.addMapping(zipMapping); >+ return descriptor; >+ } > } >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java (working copy) >@@ -20,51 +20,60 @@ > import java.util.ArrayList; > > public class NestedAttributeKeyTestCases extends KeyBasedMappingTestCases { >- private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml"; >+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml"; > >- public NestedAttributeKeyTestCases(String name) throws Exception { >- super(name); >- setControlDocument(XML_RESOURCE); >- setProject(new NestedAttributeKeyProject()); >- } >+ public NestedAttributeKeyTestCases(String name) throws Exception { >+ super(name); >+ setControlDocument(XML_RESOURCE); >+ setProject(new NestedAttributeKeyProject()); >+ } > >- public Object getControlObject() { >- ArrayList addresses = new ArrayList(); >+ public Object getControlObject() { >+ ArrayList addresses = new ArrayList(); > >- Address address = new Address(); >- address.id = CONTROL_ADD_ID_1; >- address.street = CONTROL_ADD_STREET_1; >- address.city = CONTROL_ADD_CITY_1; >- address.country = CONTROL_ADD_COUNTRY_1; >- address.zip = CONTROL_ADD_ZIP_1; >- addresses.add(address); >+ Address address = new Address(); >+ address.id = CONTROL_ADD_ID_1; >+ address.street = CONTROL_ADD_STREET_1; >+ address.city = CONTROL_ADD_CITY_1; >+ address.country = CONTROL_ADD_COUNTRY_1; >+ address.zip = CONTROL_ADD_ZIP_1; >+ addresses.add(address); > >- address = new Address(); >- address.id = CONTROL_ADD_ID_2; >- address.street = CONTROL_ADD_STREET_2; >- address.city = CONTROL_ADD_CITY_2; >- address.country = CONTROL_ADD_COUNTRY_2; >- address.zip = CONTROL_ADD_ZIP_2; >- addresses.add(address); >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_2; >+ address.street = CONTROL_ADD_STREET_2; >+ address.city = CONTROL_ADD_CITY_2; >+ address.country = CONTROL_ADD_COUNTRY_2; >+ address.zip = CONTROL_ADD_ZIP_2; >+ addresses.add(address); > >- address = new Address(); >- address.id = CONTROL_ADD_ID_3; >- address.street = CONTROL_ADD_STREET_3; >- address.city = CONTROL_ADD_CITY_3; >- address.country = CONTROL_ADD_COUNTRY_3; >- address.zip = CONTROL_ADD_ZIP_3; >- addresses.add(address); >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_3; >+ address.street = CONTROL_ADD_STREET_3; >+ address.city = CONTROL_ADD_CITY_3; >+ address.country = CONTROL_ADD_COUNTRY_3; >+ address.zip = CONTROL_ADD_ZIP_3; >+ addresses.add(address); > >- Employee employee = new Employee(); >- employee.id = CONTROL_ID; >- employee.name = CONTROL_NAME; >- employee.addresses = addresses; >+ address = new Address(); >+ address.id = CONTROL_ADD_ID_4; >+ address.street = CONTROL_ADD_STREET_4; >+ address.city = CONTROL_ADD_CITY_4; >+ address.country = CONTROL_ADD_COUNTRY_4; >+ address.zip = CONTROL_ADD_ZIP_4; >+ addresses.add(address); > >- Root root = new Root(); >- root.employee = employee; >+ Employee employee = new Employee(); >+ employee.id = CONTROL_ID; >+ employee.name = CONTROL_NAME; >+ employee.addresses = addresses; >+ >+ Root root = new Root(); >+ root.employee = employee; > root.addresses = addresses; >- return root; >- } >+ return root; >+ } >+ /* > public Object getWriteControlObject() { > ArrayList rootAddresses = new ArrayList(); > ArrayList empAddresses = new ArrayList(); >@@ -107,4 +116,5 @@ > root.addresses = rootAddresses; > return root; > } >+ */ > } >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java (working copy) >@@ -18,38 +18,41 @@ > import org.eclipse.persistence.testing.oxm.mappings.keybased.Address; > > public class Employee extends org.eclipse.persistence.testing.oxm.mappings.keybased.Employee { >- public ArrayList addresses; >+ public ArrayList<Address> addresses; > >- public boolean equals(Object obj) { >- if (obj == null || !(obj instanceof Employee)) { >- return false; >- } >- Employee tgtEmp = ((Employee) obj); >- ArrayList tgtAddresses = tgtEmp.addresses; >- if (this.addresses == null) { >+ public Employee() { >+ addresses = new ArrayList<Address>(); >+ } >+ >+ public boolean equals(Object obj) { >+ if (obj == null || !(obj instanceof Employee)) { >+ return false; >+ } >+ Employee tgtEmp = ((Employee) obj); >+ ArrayList tgtAddresses = tgtEmp.addresses; >+ if (this.addresses == null) { > return tgtAddresses == null; >- } >- >- if (tgtAddresses == null || tgtAddresses.size() != addresses.size()) { >- return false; >- } >- >- for (Iterator addIt = this.addresses.iterator(); addIt.hasNext(); ) { >- Address address = (Address) addIt.next(); >- if (!(tgtAddresses.contains(address))) { >- return false; >- } >- } >- return true; >- } >- >- public String toString() { >- String addressString=""; >+ } >+ >+ if (tgtAddresses == null || tgtAddresses.size() != addresses.size()) { >+ return false; >+ } >+ > for (Iterator addIt = this.addresses.iterator(); addIt.hasNext(); ) { > Address address = (Address) addIt.next(); >+ if (!(tgtAddresses.contains(address))) { >+ return false; >+ } >+ } >+ return true; >+ } >+ >+ public String toString() { >+ String addressString=""; >+ for (Address address : addresses) { > addressString = address.toString(); > } >- >- return "Employee: id="+ id + ", name=" + name + ", addresses=[" + addressString+"]"; >- } >-} >+ return "Employee: id="+ id + ", name=" + name + ", addresses=[" + addressString+"]"; >+ } >+ >+} >\ No newline at end of file >Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java >=================================================================== >--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java (revision 5682) >+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java (working copy) >@@ -15,14 +15,16 @@ > import junit.framework.Test; > import junit.framework.TestCase; > import junit.framework.TestSuite; >+ >+//import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases; > import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.SingleKeyTestCases; >-//import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases; > > public class MultipleTargetTestCases extends TestCase { > public static Test suite() { > TestSuite suite = new TestSuite("Multiple target test suite"); > suite.addTest(SingleKeyTestCases.suite()); >- // Keep the composite key test suite commented out until bug# 5683210 is addressed >+ >+ // Testing fix for bug# 5683210 > //suite.addTest(CompositeKeyTestCases.suite()); > return suite; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 285889
:
150166
|
150167
|
150292
|
150308
|
150310
|
150400
|
150634
|
150974
|
150976
|
151083
|
151205