View | Details | Raw Unified | Return to bug 285889 | Differences between
and this patch

Collapse All | Expand All

(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (+34 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<address id-city="Anyothertown" id-zip="X0X0X0"/>
6
		<address id-city="Anytown" id-zip="X0X0X0"/>
7
		<address id-city="Anytown" id-zip="Y0Y0Y0"/>
8
		<address id-city="Sometown" id-zip="X0X0X0"/>
9
	</employee>
10
	<address aid="199">
11
		<street>Some Other St.</street>
12
		<city>Anyothertown</city>
13
		<country>Canada</country>
14
		<zip>X0X0X0</zip>
15
	</address>
16
	<address aid="99">
17
		<street>Some St.</street>
18
		<city>Anytown</city>
19
		<country>Canada</country>
20
		<zip>X0X0X0</zip>
21
	</address>
22
	<address aid="11199">
23
		<street>Another St.</street>
24
		<city>Anytown</city>
25
		<country>Canada</country>
26
		<zip>Y0Y0Y0</zip>
27
	</address>
28
	<address aid="1199">
29
		<street>Some St.</street>
30
		<city>Sometown</city>
31
		<country>Canada</country>
32
		<zip>X0X0X0</zip>
33
	</address>
34
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (+34 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<address id-city="Anyothertown" id-zip="X0X0X0"/>
6
		<address id-city="Anytown" id-zip="X0X0X0"/>
7
		<address id-city="Anytown" id-zip="Y0Y0Y0"/>
8
		<address id-city="Sometown" id-zip="X0X0X0"/>
9
	</employee>
10
	<address aid="199">
11
		<street>Some Other St.</street>
12
		<city>Anyothertown</city>
13
		<country>Canada</country>
14
		<zip>X0X0X0</zip>
15
	</address>
16
	<address aid="99">
17
		<street>Some St.</street>
18
		<city>Anytown</city>
19
		<country>Canada</country>
20
		<zip>X0X0X0</zip>
21
	</address>
22
	<address aid="11199">
23
		<street>Another St.</street>
24
		<city>Anytown</city>
25
		<country>Canada</country>
26
		<zip>Y0Y0Y0</zip>
27
	</address>
28
	<address aid="1199">
29
		<street>Some St.</street>
30
		<city>Sometown</city>
31
		<country>Canada</country>
32
		<zip>X0X0X0</zip>
33
	</address>
34
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (+46 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<ns:root xmlns:ns="urn:example">
3
	<ns:employee id="222">
4
		<ns:name>Joe Smith</ns:name>
5
		<ns:address>
6
			<ns:id-city>Anyothertown</ns:id-city>
7
			<ns:id-zip>X0X0X0</ns:id-zip>
8
		</ns:address>
9
		<ns:address>
10
			<ns:id-city>Anytown</ns:id-city>
11
			<ns:id-zip>X0X0X0</ns:id-zip>
12
		</ns:address>
13
		<ns:address>
14
			<ns:id-city>Anytown</ns:id-city>
15
			<ns:id-zip>Y0Y0Y0</ns:id-zip>
16
		</ns:address>
17
		<ns:address>
18
			<ns:id-city>Sometown</ns:id-city>
19
			<ns:id-zip>X0X0X0</ns:id-zip>
20
		</ns:address>
21
	</ns:employee>
22
	<ns:address aid="199">
23
		<ns:street>Some Other St.</ns:street>
24
		<ns:city>Anyothertown</ns:city>
25
		<ns:country>Canada</ns:country>
26
		<ns:zip>X0X0X0</ns:zip>
27
	</ns:address>
28
	<ns:address aid="99">
29
		<ns:street>Some St.</ns:street>
30
		<ns:city>Anytown</ns:city>
31
		<ns:country>Canada</ns:country>
32
		<ns:zip>X0X0X0</ns:zip>
33
	</ns:address>
34
	<ns:address aid="11199">
35
		<ns:street>Another St.</ns:street>
36
		<ns:city>Anytown</ns:city>
37
		<ns:country>Canada</ns:country>
38
		<ns:zip>Y0Y0Y0</ns:zip>
39
	</ns:address>
40
	<ns:address aid="1199">
41
		<ns:street>Some St.</ns:street>
42
		<ns:city>Sometown</ns:city>
43
		<ns:country>Canada</ns:country>
44
		<ns:zip>X0X0X0</ns:zip>
45
	</ns:address>
46
</ns:root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (+46 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<address>
6
			<id-city>Anyothertown</id-city>
7
			<id-zip>X0X0X0</id-zip>
8
		</address>
9
		<address>
10
			<id-city>Anytown</id-city>
11
			<id-zip>X0X0X0</id-zip>
12
		</address>
13
		<address>
14
			<id-city>Anytown</id-city>
15
			<id-zip>Y0Y0Y0</id-zip>
16
		</address>
17
		<address>
18
			<id-city>Sometown</id-city>
19
			<id-zip>X0X0X0</id-zip>
20
		</address>
21
	</employee>
22
	<address aid="199">
23
		<street>Some Other St.</street>
24
		<city>Anyothertown</city>
25
		<country>Canada</country>
26
		<zip>X0X0X0</zip>
27
	</address>
28
	<address aid="99">
29
		<street>Some St.</street>
30
		<city>Anytown</city>
31
		<country>Canada</country>
32
		<zip>X0X0X0</zip>
33
	</address>
34
	<address aid="11199">
35
		<street>Another St.</street>
36
		<city>Anytown</city>
37
		<country>Canada</country>
38
		<zip>Y0Y0Y0</zip>
39
	</address>
40
	<address aid="1199">
41
		<street>Some St.</street>
42
		<city>Sometown</city>
43
		<country>Canada</country>
44
		<zip>X0X0X0</zip>
45
	</address>
46
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (+48 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<ns:root xmlns:ns="urn:example">
3
	<ns:employee id="222">
4
		<ns:name>Joe Smith</ns:name>
5
		<ns:grouping-element>
6
			<ns:address>
7
				<ns:id-city>Anyothertown</ns:id-city>
8
				<ns:id-zip>X0X0X0</ns:id-zip>
9
			</ns:address>
10
			<ns:address>
11
				<ns:id-city>Anytown</ns:id-city>
12
				<ns:id-zip>X0X0X0</ns:id-zip>
13
			</ns:address>
14
			<ns:address>
15
				<ns:id-city>Anytown</ns:id-city>
16
				<ns:id-zip>Y0Y0Y0</ns:id-zip>
17
			</ns:address>
18
			<ns:address>
19
				<ns:id-city>Sometown</ns:id-city>
20
				<ns:id-zip>X0X0X0</ns:id-zip>
21
			</ns:address>
22
		</ns:grouping-element>
23
	</ns:employee>
24
	<ns:address aid="199">
25
		<ns:street>Some Other St.</ns:street>
26
		<ns:city>Anyothertown</ns:city>
27
		<ns:country>Canada</ns:country>
28
		<ns:zip>X0X0X0</ns:zip>
29
	</ns:address>
30
	<ns:address aid="99">
31
		<ns:street>Some St.</ns:street>
32
		<ns:city>Anytown</ns:city>
33
		<ns:country>Canada</ns:country>
34
		<ns:zip>X0X0X0</ns:zip>
35
	</ns:address>
36
	<ns:address aid="11199">
37
		<ns:street>Another St.</ns:street>
38
		<ns:city>Anytown</ns:city>
39
		<ns:country>Canada</ns:country>
40
		<ns:zip>Y0Y0Y0</ns:zip>
41
	</ns:address>
42
	<ns:address aid="1199">
43
		<ns:street>Some St.</ns:street>
44
		<ns:city>Sometown</ns:city>
45
		<ns:country>Canada</ns:country>
46
		<ns:zip>X0X0X0</ns:zip>
47
	</ns:address>
48
</ns:root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (+48 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<grouping-element>
6
			<address>
7
				<id-city>Anyothertown</id-city>
8
				<id-zip>X0X0X0</id-zip>
9
			</address>
10
			<address>
11
				<id-city>Anytown</id-city>
12
				<id-zip>X0X0X0</id-zip>
13
			</address>
14
			<address>
15
				<id-city>Anytown</id-city>
16
				<id-zip>Y0Y0Y0</id-zip>
17
			</address>
18
			<address>
19
				<id-city>Sometown</id-city>
20
				<id-zip>X0X0X0</id-zip>
21
			</address>
22
		</grouping-element>
23
	</employee>
24
	<address aid="199">
25
		<street>Some Other St.</street>
26
		<city>Anyothertown</city>
27
		<country>Canada</country>
28
		<zip>X0X0X0</zip>
29
	</address>
30
	<address aid="99">
31
		<street>Some St.</street>
32
		<city>Anytown</city>
33
		<country>Canada</country>
34
		<zip>X0X0X0</zip>
35
	</address>
36
	<address aid="11199">
37
		<street>Another St.</street>
38
		<city>Anytown</city>
39
		<country>Canada</country>
40
		<zip>Y0Y0Y0</zip>
41
	</address>
42
	<address aid="1199">
43
		<street>Some St.</street>
44
		<city>Sometown</city>
45
		<country>Canada</country>
46
		<zip>X0X0X0</zip>
47
	</address>
48
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (+48 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<ns:root xmlns:ns="urn:example">
3
	<ns:employee id="222">
4
		<ns:name>Joe Smith</ns:name>
5
		<ns:grouping-element>
6
			<ns:address>
7
				<ns:id-city>Anyothertown</ns:id-city>
8
				<ns:id-zip>X0X0X0</ns:id-zip>
9
			</ns:address>
10
			<ns:address>
11
				<ns:id-city>Anytown</ns:id-city>
12
				<ns:id-zip>X0X0X0</ns:id-zip>
13
			</ns:address>
14
			<ns:address>
15
				<ns:id-city>Anytown</ns:id-city>
16
				<ns:id-zip>Y0Y0Y0</ns:id-zip>
17
			</ns:address>
18
			<ns:address>
19
				<ns:id-city>Sometown</ns:id-city>
20
				<ns:id-zip>X0X0X0</ns:id-zip>
21
			</ns:address>
22
		</ns:grouping-element>
23
	</ns:employee>
24
	<ns:address aid="199">
25
		<ns:street>Some Other St.</ns:street>
26
		<ns:city>Anyothertown</ns:city>
27
		<ns:country>Canada</ns:country>
28
		<ns:zip>X0X0X0</ns:zip>
29
	</ns:address>
30
	<ns:address aid="99">
31
		<ns:street>Some St.</ns:street>
32
		<ns:city>Anytown</ns:city>
33
		<ns:country>Canada</ns:country>
34
		<ns:zip>X0X0X0</ns:zip>
35
	</ns:address>
36
	<ns:address aid="11199">
37
		<ns:street>Another St.</ns:street>
38
		<ns:city>Anytown</ns:city>
39
		<ns:country>Canada</ns:country>
40
		<ns:zip>Y0Y0Y0</ns:zip>
41
	</ns:address>
42
	<ns:address aid="1199">
43
		<ns:street>Some St.</ns:street>
44
		<ns:city>Sometown</ns:city>
45
		<ns:country>Canada</ns:country>
46
		<ns:zip>X0X0X0</ns:zip>
47
	</ns:address>
48
</ns:root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (+48 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<grouping-element>
6
			<address>
7
				<id-city>Anyothertown</id-city>
8
				<id-zip>X0X0X0</id-zip>
9
			</address>
10
			<address>
11
				<id-city>Anytown</id-city>
12
				<id-zip>X0X0X0</id-zip>
13
			</address>
14
			<address>
15
				<id-city>Anytown</id-city>
16
				<id-zip>Y0Y0Y0</id-zip>
17
			</address>
18
			<address>
19
				<id-city>Sometown</id-city>
20
				<id-zip>X0X0X0</id-zip>
21
			</address>
22
		</grouping-element>
23
	</employee>
24
	<address aid="199">
25
		<street>Some Other St.</street>
26
		<city>Anyothertown</city>
27
		<country>Canada</country>
28
		<zip>X0X0X0</zip>
29
	</address>
30
	<address aid="99">
31
		<street>Some St.</street>
32
		<city>Anytown</city>
33
		<country>Canada</country>
34
		<zip>X0X0X0</zip>
35
	</address>
36
	<address aid="11199">
37
		<street>Another St.</street>
38
		<city>Anytown</city>
39
		<country>Canada</country>
40
		<zip>Y0Y0Y0</zip>
41
	</address>
42
	<address aid="1199">
43
		<street>Some St.</street>
44
		<city>Sometown</city>
45
		<country>Canada</country>
46
		<zip>X0X0X0</zip>
47
	</address>
48
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (+46 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<ns:root xmlns:ns="urn:example">
3
	<ns:employee id="222">
4
		<ns:name>Joe Smith</ns:name>
5
		<ns:address>
6
			<ns:id-city>Anyothertown</ns:id-city>
7
			<ns:id-zip>X0X0X0</ns:id-zip>
8
		</ns:address>
9
		<ns:address>
10
			<ns:id-city>Anytown</ns:id-city>
11
			<ns:id-zip>X0X0X0</ns:id-zip>
12
		</ns:address>
13
		<ns:address>
14
			<ns:id-city>Anytown</ns:id-city>
15
			<ns:id-zip>Y0Y0Y0</ns:id-zip>
16
		</ns:address>
17
		<ns:address>
18
			<ns:id-city>Sometown</ns:id-city>
19
			<ns:id-zip>X0X0X0</ns:id-zip>
20
		</ns:address>
21
	</ns:employee>
22
	<ns:address aid="199">
23
		<ns:street>Some Other St.</ns:street>
24
		<ns:city>Anyothertown</ns:city>
25
		<ns:country>Canada</ns:country>
26
		<ns:zip>X0X0X0</ns:zip>
27
	</ns:address>
28
	<ns:address aid="99">
29
		<ns:street>Some St.</ns:street>
30
		<ns:city>Anytown</ns:city>
31
		<ns:country>Canada</ns:country>
32
		<ns:zip>X0X0X0</ns:zip>
33
	</ns:address>
34
	<ns:address aid="11199">
35
		<ns:street>Another St.</ns:street>
36
		<ns:city>Anytown</ns:city>
37
		<ns:country>Canada</ns:country>
38
		<ns:zip>Y0Y0Y0</ns:zip>
39
	</ns:address>
40
	<ns:address aid="1199">
41
		<ns:street>Some St.</ns:street>
42
		<ns:city>Sometown</ns:city>
43
		<ns:country>Canada</ns:country>
44
		<ns:zip>X0X0X0</ns:zip>
45
	</ns:address>
46
</ns:root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (+46 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<address>
6
			<id-city>Anyothertown</id-city>
7
			<id-zip>X0X0X0</id-zip>
8
		</address>
9
		<address>
10
			<id-city>Anytown</id-city>
11
			<id-zip>X0X0X0</id-zip>
12
		</address>
13
		<address>
14
			<id-city>Anytown</id-city>
15
			<id-zip>Y0Y0Y0</id-zip>
16
		</address>
17
		<address>
18
			<id-city>Sometown</id-city>
19
			<id-zip>X0X0X0</id-zip>
20
		</address>
21
	</employee>
22
	<address aid="199">
23
		<street>Some Other St.</street>
24
		<city>Anyothertown</city>
25
		<country>Canada</country>
26
		<zip>X0X0X0</zip>
27
	</address>
28
	<address aid="99">
29
		<street>Some St.</street>
30
		<city>Anytown</city>
31
		<country>Canada</country>
32
		<zip>X0X0X0</zip>
33
	</address>
34
	<address aid="11199">
35
		<street>Another St.</street>
36
		<city>Anytown</city>
37
		<country>Canada</country>
38
		<zip>Y0Y0Y0</zip>
39
	</address>
40
	<address aid="1199">
41
		<street>Some St.</street>
42
		<city>Sometown</city>
43
		<country>Canada</country>
44
		<zip>X0X0X0</zip>
45
	</address>
46
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (+36 lines)
Line 0 Link Here
1
<?xml version='1.0' encoding='UTF-8'?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<addresses>
6
			<address-ref address-zip="X0X0X0" address-city="Anyothertown"/>
7
			<address-ref address-zip="X0X0X0" address-city="Anytown"/>
8
			<address-ref address-zip="Y0Y0Y0" address-city="Anytown" />
9
			<address-ref address-zip="X0X0X0" address-city="Sometown"/>
10
		</addresses>
11
	</employee>
12
	<address aid="199">
13
		<street>Some Other St.</street>
14
		<city>Anyothertown</city>
15
		<country>Canada</country>
16
		<zip>X0X0X0</zip>
17
	</address>
18
	<address aid="99">
19
		<street>Some St.</street>
20
		<city>Anytown</city>
21
		<country>Canada</country>
22
		<zip>X0X0X0</zip>
23
	</address>
24
	<address aid="11199">
25
		<street>Another St.</street>
26
		<city>Anytown</city>
27
		<country>Canada</country>
28
		<zip>Y0Y0Y0</zip>
29
	</address>
30
	<address aid="1199">
31
		<street>Some St.</street>
32
		<city>Sometown</city>
33
		<country>Canada</country>
34
		<zip>X0X0X0</zip>
35
	</address>
36
</root>
(-)resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (+36 lines)
Line 0 Link Here
1
<?xml version='1.0' encoding='UTF-8'?>
2
<root>
3
	<employee id="222">
4
		<name>Joe Smith</name>
5
		<addresses>
6
			<address-ref address-zip="X0X0X0" address-city="Anyothertown"/>
7
			<address-ref address-zip="X0X0X0" address-city="Anytown"/>
8
			<address-ref address-zip="Y0Y0Y0" address-city="Anytown" />
9
			<address-ref address-zip="X0X0X0" address-city="Sometown"/>
10
		</addresses>
11
	</employee>
12
	<address aid="199">
13
		<street>Some Other St.</street>
14
		<city>Anyothertown</city>
15
		<country>Canada</country>
16
		<zip>X0X0X0</zip>
17
	</address>
18
	<address aid="99">
19
		<street>Some St.</street>
20
		<city>Anytown</city>
21
		<country>Canada</country>
22
		<zip>X0X0X0</zip>
23
	</address>
24
	<address aid="11199">
25
		<street>Another St.</street>
26
		<city>Anytown</city>
27
		<country>Canada</country>
28
		<zip>Y0Y0Y0</zip>
29
	</address>
30
	<address aid="1199">
31
		<street>Some St.</street>
32
		<city>Sometown</city>
33
		<country>Canada</country>
34
		<zip>X0X0X0</zip>
35
	</address>
36
</root>
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java (-3 / +2 lines)
Lines 70-78 Link Here
70
        addressMapping.useCollectionClass(ArrayList.class);
70
        addressMapping.useCollectionClass(ArrayList.class);
71
        addressMapping.setAttributeName("addresses");
71
        addressMapping.setAttributeName("addresses");
72
        addressMapping.setReferenceClass(Address.class);
72
        addressMapping.setReferenceClass(Address.class);
73
        addressMapping.addSourceToTargetKeyFieldAssociation("@address-city", "city/text()");
73
        addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-city", "city/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("@address-zip", "zip/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-zip", "zip/text()");
75
        addressMapping.setUsesSingleNode(true);
76
        descriptor.addMapping(addressMapping);
75
        descriptor.addMapping(addressMapping);
77
		return descriptor;
76
		return descriptor;
78
	}
77
	}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java (-52 / +12 lines)
Lines 29-35 Link Here
29
	}
29
	}
30
30
31
	protected Object getControlObject() {
31
	protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList();
32
        ArrayList addresses = new ArrayList(4);
33
33
34
        Address address = new Address();
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
35
        address.id = CONTROL_ADD_ID_1;
Lines 55-117 Link Here
55
        address.zip = CONTROL_ADD_ZIP_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
56
        addresses.add(address);
57
57
58
		Employee employee = new Employee();
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
59
		employee.id = CONTROL_ID;
67
		employee.id = CONTROL_ID;
60
		employee.name = CONTROL_NAME;
68
		employee.name = CONTROL_NAME;
61
		employee.addresses = addresses;
69
		employee.addresses = addresses;
62
70
63
		Root root = new Root();
71
		Root root = new Root();
64
		root.employee = employee;
72
		root.employee = employee;
73
		root.addresses = addresses;
65
		return root;
74
		return root;
66
	}
75
	}
67
76
68
	public Object getWriteControlObject() {
77
}
69
		ArrayList rootAddresses = new ArrayList();
70
        ArrayList empAddresses = new ArrayList();
71
72
		Address address = new Address();
73
		address.id = CONTROL_ADD_ID_1;
74
		address.street = CONTROL_ADD_STREET_1;
75
		address.city = CONTROL_ADD_CITY_1;
76
		address.country = CONTROL_ADD_COUNTRY_1;
77
		address.zip = CONTROL_ADD_ZIP_1;
78
        empAddresses.add(address);
79
		rootAddresses.add(address);
80
81
		address = new Address();
82
		address.id = CONTROL_ADD_ID_2;
83
		address.street = CONTROL_ADD_STREET_2;
84
		address.city = CONTROL_ADD_CITY_2;
85
		address.country = CONTROL_ADD_COUNTRY_2;
86
		address.zip = CONTROL_ADD_ZIP_2;
87
        empAddresses.add(address);
88
		rootAddresses.add(address);
89
90
		address = new Address();
91
		address.id = CONTROL_ADD_ID_3;
92
		address.street = CONTROL_ADD_STREET_3;
93
		address.city = CONTROL_ADD_CITY_3;
94
		address.country = CONTROL_ADD_COUNTRY_3;
95
		address.zip = CONTROL_ADD_ZIP_3;
96
        empAddresses.add(address);
97
		rootAddresses.add(address);
98
99
		address = new Address();
100
		address.id = CONTROL_ADD_ID_4;
101
		address.street = CONTROL_ADD_STREET_4;
102
		address.city = CONTROL_ADD_CITY_4;
103
		address.country = CONTROL_ADD_COUNTRY_4;
104
		address.zip = CONTROL_ADD_ZIP_4;
105
		rootAddresses.add(address);
106
107
        Employee employee = new Employee();
108
        employee.id = CONTROL_ID;
109
        employee.name = CONTROL_NAME;
110
        employee.addresses = empAddresses;
111
112
		Root root = new Root();
113
		root.employee = employee;
114
		root.addresses = rootAddresses;
115
		return root;
116
	}
117
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java (+10 lines)
Lines 16-27 Link Here
16
import junit.framework.TestCase;
16
import junit.framework.TestCase;
17
import junit.framework.TestSuite;
17
import junit.framework.TestSuite;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.attributekey.CompositeAttributeKeysTestCases;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.attributekey.CompositeAttributeKeysTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyNSTestCases;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyTestCases;
21
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingNSTestCases;
22
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.nestedattributekey.NestedAttributeKeyTestCases;
23
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.nestedattributekey.NestedAttributeKeyTestCases;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyTestCases;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyWithGroupingTestCases;
20
26
21
public class CompositeKeyTestCases extends TestCase {
27
public class CompositeKeyTestCases extends TestCase {
22
    public static Test suite() {
28
    public static Test suite() {
23
        TestSuite suite = new TestSuite("Multiple targets with composite key test suite");
29
        TestSuite suite = new TestSuite("Multiple targets with composite key test suite");
24
        suite.addTestSuite(CompositeAttributeKeysTestCases.class);
30
        suite.addTestSuite(CompositeAttributeKeysTestCases.class);
31
        suite.addTestSuite(CompositeElementKeyTestCases.class);
32
        suite.addTestSuite(CompositeElementKeyWithGroupingTestCases.class);
33
        suite.addTestSuite(CompositeElementKeyNSTestCases.class);
34
        suite.addTestSuite(CompositeElementKeyWithGroupingNSTestCases.class);
25
        suite.addTestSuite(NestedAttributeKeyTestCases.class);
35
        suite.addTestSuite(NestedAttributeKeyTestCases.class);
26
        return suite;
36
        return suite;
27
    }
37
    }
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (+114 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.XMLDescriptor;
18
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
19
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
22
import org.eclipse.persistence.sessions.Project;
23
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
26
27
public class CompositeElementKeyWithGroupingProject extends Project {
28
29
    public CompositeElementKeyWithGroupingProject() {
30
        addDescriptor(getRootDescriptor());
31
        addDescriptor(getEmployeeDescriptor());
32
        addDescriptor(getAddressDescriptor());
33
    }
34
35
    private XMLDescriptor getRootDescriptor() {
36
        XMLDescriptor descriptor = new XMLDescriptor();
37
        descriptor.setJavaClass(Root.class);
38
        descriptor.setDefaultRootElement("root");
39
        // create employee mapping
40
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
41
        empMapping.setAttributeName("employee");
42
        empMapping.setXPath("employee");
43
        empMapping.setReferenceClass(Employee.class);
44
        descriptor.addMapping(empMapping);
45
        // create address mapping
46
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
47
        addMapping.setAttributeName("addresses");
48
        addMapping.setXPath("address");
49
        addMapping.setReferenceClass(Address.class);
50
        descriptor.addMapping(addMapping);
51
        return descriptor;
52
    }
53
54
    private XMLDescriptor getEmployeeDescriptor() {
55
        XMLDescriptor descriptor = new XMLDescriptor();
56
        descriptor.setJavaClass(Employee.class);
57
        descriptor.setDefaultRootElement("employee");
58
        // create id mapping
59
        XMLDirectMapping idMapping = new XMLDirectMapping();
60
        idMapping.setAttributeName("id");
61
        idMapping.setXPath("@id");
62
        descriptor.addMapping(idMapping);
63
        // create name mapping
64
        XMLDirectMapping nameMapping = new XMLDirectMapping();
65
        nameMapping.setAttributeName("name");
66
        nameMapping.setXPath("name/text()");
67
        descriptor.addMapping(nameMapping);
68
        // create address mapping
69
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
70
        addressMapping.useCollectionClass(ArrayList.class);
71
        addressMapping.setAttributeName("addresses");
72
        addressMapping.setXPath("grouping-element");
73
        addressMapping.setReferenceClass(Address.class);
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
75
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
76
        descriptor.addMapping(addressMapping);
77
        return descriptor;
78
    }
79
80
    private XMLDescriptor getAddressDescriptor() {
81
        XMLDescriptor descriptor = new XMLDescriptor();
82
        descriptor.setJavaClass(Address.class);
83
        descriptor.addPrimaryKeyFieldName("city/text()");
84
        descriptor.addPrimaryKeyFieldName("zip/text()");
85
        descriptor.setDefaultRootElement("address");
86
        // create id mapping
87
        XMLDirectMapping idMapping = new XMLDirectMapping();
88
        idMapping.setAttributeName("id");
89
        idMapping.setXPath("@aid");
90
        descriptor.addMapping(idMapping);
91
        // create street mapping
92
        XMLDirectMapping streetMapping = new XMLDirectMapping();
93
        streetMapping.setAttributeName("street");
94
        streetMapping.setXPath("street/text()");
95
        descriptor.addMapping(streetMapping);
96
        // create city mapping
97
        XMLDirectMapping cityMapping = new XMLDirectMapping();
98
        cityMapping.setAttributeName("city");
99
        cityMapping.setXPath("city/text()");
100
        descriptor.addMapping(cityMapping);
101
        // create country mapping
102
        XMLDirectMapping countryMapping = new XMLDirectMapping();
103
        countryMapping.setAttributeName("country");
104
        countryMapping.setXPath("country/text()");
105
        descriptor.addMapping(countryMapping);
106
        // create zip mapping
107
        XMLDirectMapping zipMapping = new XMLDirectMapping();
108
        zipMapping.setAttributeName("zip");
109
        zipMapping.setXPath("zip/text()");
110
        descriptor.addMapping(zipMapping);
111
        return descriptor;
112
    }
113
114
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml";
24
25
    public CompositeElementKeyTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (+127 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.NamespaceResolver;
18
import org.eclipse.persistence.oxm.XMLDescriptor;
19
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
22
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
23
import org.eclipse.persistence.sessions.Project;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
26
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
27
28
public class CompositeElementKeyWithGroupingNSProject extends Project {
29
30
    public CompositeElementKeyWithGroupingNSProject() {
31
        addDescriptor(getRootDescriptor());
32
        addDescriptor(getEmployeeDescriptor());
33
        addDescriptor(getAddressDescriptor());
34
    }
35
36
    private XMLDescriptor getRootDescriptor() {
37
        XMLDescriptor descriptor = new XMLDescriptor();
38
        descriptor.setJavaClass(Root.class);
39
        descriptor.setDefaultRootElement("ns:root");
40
        // create namespace resolver
41
        NamespaceResolver nsResolver = new NamespaceResolver();
42
        nsResolver.put("ns", "urn:example");
43
        descriptor.setNamespaceResolver(nsResolver);
44
        // create employee mapping
45
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
46
        empMapping.setAttributeName("employee");
47
        empMapping.setXPath("ns:employee");
48
        empMapping.setReferenceClass(Employee.class);
49
        descriptor.addMapping(empMapping);
50
        // create address mapping
51
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
52
        addMapping.setAttributeName("addresses");
53
        addMapping.setXPath("ns:address");
54
        addMapping.setReferenceClass(Address.class);
55
        descriptor.addMapping(addMapping);
56
        return descriptor;
57
    }
58
59
    private XMLDescriptor getEmployeeDescriptor() {
60
        XMLDescriptor descriptor = new XMLDescriptor();
61
        descriptor.setJavaClass(Employee.class);
62
        descriptor.setDefaultRootElement("employee");
63
        // create namespace resolver
64
        NamespaceResolver nsResolver = new NamespaceResolver();
65
        nsResolver.put("ns", "urn:example");
66
        descriptor.setNamespaceResolver(nsResolver);
67
        // create id mapping
68
        XMLDirectMapping idMapping = new XMLDirectMapping();
69
        idMapping.setAttributeName("id");
70
        idMapping.setXPath("@id");
71
        descriptor.addMapping(idMapping);
72
        // create name mapping
73
        XMLDirectMapping nameMapping = new XMLDirectMapping();
74
        nameMapping.setAttributeName("name");
75
        nameMapping.setXPath("ns:name/text()");
76
        descriptor.addMapping(nameMapping);
77
        // create address mapping
78
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
79
        addressMapping.useCollectionClass(ArrayList.class);
80
        addressMapping.setAttributeName("addresses");
81
        addressMapping.setXPath("ns:grouping-element");
82
        addressMapping.setReferenceClass(Address.class);
83
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
84
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
85
        descriptor.addMapping(addressMapping);
86
        return descriptor;
87
    }
88
89
    private XMLDescriptor getAddressDescriptor() {
90
        XMLDescriptor descriptor = new XMLDescriptor();
91
        descriptor.setJavaClass(Address.class);
92
        descriptor.addPrimaryKeyFieldName("ns:city/text()");
93
        descriptor.addPrimaryKeyFieldName("ns:zip/text()");
94
        descriptor.setDefaultRootElement("address");
95
        // create namespace resolver
96
        NamespaceResolver nsResolver = new NamespaceResolver();
97
        nsResolver.put("ns", "urn:example");
98
        descriptor.setNamespaceResolver(nsResolver);
99
        // create id mapping
100
        XMLDirectMapping idMapping = new XMLDirectMapping();
101
        idMapping.setAttributeName("id");
102
        idMapping.setXPath("@aid");
103
        descriptor.addMapping(idMapping);
104
        // create street mapping
105
        XMLDirectMapping streetMapping = new XMLDirectMapping();
106
        streetMapping.setAttributeName("street");
107
        streetMapping.setXPath("ns:street/text()");
108
        descriptor.addMapping(streetMapping);
109
        // create city mapping
110
        XMLDirectMapping cityMapping = new XMLDirectMapping();
111
        cityMapping.setAttributeName("city");
112
        cityMapping.setXPath("ns:city/text()");
113
        descriptor.addMapping(cityMapping);
114
        // create country mapping
115
        XMLDirectMapping countryMapping = new XMLDirectMapping();
116
        countryMapping.setAttributeName("country");
117
        countryMapping.setXPath("ns:country/text()");
118
        descriptor.addMapping(countryMapping);
119
        // create zip mapping
120
        XMLDirectMapping zipMapping = new XMLDirectMapping();
121
        zipMapping.setAttributeName("zip");
122
        zipMapping.setXPath("ns:zip/text()");
123
        descriptor.addMapping(zipMapping);
124
        return descriptor;
125
    }
126
127
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml";
24
25
    public CompositeElementKeyNSTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyNSProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml";
24
25
    public CompositeElementKeyWithGroupingTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyWithGroupingProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (+113 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.XMLDescriptor;
18
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
19
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
22
import org.eclipse.persistence.sessions.Project;
23
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
26
27
public class CompositeElementKeyProject extends Project {
28
29
    public CompositeElementKeyProject() {
30
        addDescriptor(getRootDescriptor());
31
        addDescriptor(getEmployeeDescriptor());
32
        addDescriptor(getAddressDescriptor());
33
    }
34
35
    private XMLDescriptor getRootDescriptor() {
36
        XMLDescriptor descriptor = new XMLDescriptor();
37
        descriptor.setJavaClass(Root.class);
38
        descriptor.setDefaultRootElement("root");
39
        // create employee mapping
40
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
41
        empMapping.setAttributeName("employee");
42
        empMapping.setXPath("employee");
43
        empMapping.setReferenceClass(Employee.class);
44
        descriptor.addMapping(empMapping);
45
        // create address mapping
46
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
47
        addMapping.setAttributeName("addresses");
48
        addMapping.setXPath("address");
49
        addMapping.setReferenceClass(Address.class);
50
        descriptor.addMapping(addMapping);
51
        return descriptor;
52
    }
53
    
54
    private XMLDescriptor getEmployeeDescriptor() {
55
        XMLDescriptor descriptor = new XMLDescriptor();
56
        descriptor.setJavaClass(Employee.class);
57
        descriptor.setDefaultRootElement("employee");
58
        // create id mapping
59
        XMLDirectMapping idMapping = new XMLDirectMapping();
60
        idMapping.setAttributeName("id");
61
        idMapping.setXPath("@id");
62
        descriptor.addMapping(idMapping);
63
        // create name mapping
64
        XMLDirectMapping nameMapping = new XMLDirectMapping();
65
        nameMapping.setAttributeName("name");
66
        nameMapping.setXPath("name/text()");
67
        descriptor.addMapping(nameMapping);
68
        // create address mapping
69
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
70
        addressMapping.useCollectionClass(ArrayList.class);
71
        addressMapping.setAttributeName("addresses");
72
        addressMapping.setReferenceClass(Address.class);
73
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
75
        descriptor.addMapping(addressMapping);
76
        return descriptor;
77
    }
78
79
    private XMLDescriptor getAddressDescriptor() {
80
        XMLDescriptor descriptor = new XMLDescriptor();
81
        descriptor.setJavaClass(Address.class);
82
        descriptor.addPrimaryKeyFieldName("city/text()");
83
        descriptor.addPrimaryKeyFieldName("zip/text()");
84
        descriptor.setDefaultRootElement("address");
85
        // create id mapping
86
        XMLDirectMapping idMapping = new XMLDirectMapping();
87
        idMapping.setAttributeName("id");
88
        idMapping.setXPath("@aid");
89
        descriptor.addMapping(idMapping);
90
        // create street mapping
91
        XMLDirectMapping streetMapping = new XMLDirectMapping();
92
        streetMapping.setAttributeName("street");
93
        streetMapping.setXPath("street/text()");
94
        descriptor.addMapping(streetMapping);
95
        // create city mapping
96
        XMLDirectMapping cityMapping = new XMLDirectMapping();
97
        cityMapping.setAttributeName("city");
98
        cityMapping.setXPath("city/text()");
99
        descriptor.addMapping(cityMapping);
100
        // create country mapping
101
        XMLDirectMapping countryMapping = new XMLDirectMapping();
102
        countryMapping.setAttributeName("country");
103
        countryMapping.setXPath("country/text()");
104
        descriptor.addMapping(countryMapping);
105
        // create zip mapping
106
        XMLDirectMapping zipMapping = new XMLDirectMapping();
107
        zipMapping.setAttributeName("zip");
108
        zipMapping.setXPath("zip/text()");
109
        descriptor.addMapping(zipMapping);
110
        return descriptor;
111
    }
112
113
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml";
24
25
    public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyWithGroupingNSProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (+126 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.NamespaceResolver;
18
import org.eclipse.persistence.oxm.XMLDescriptor;
19
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
22
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
23
import org.eclipse.persistence.sessions.Project;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
26
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
27
28
public class CompositeElementKeyNSProject extends Project {
29
30
    public CompositeElementKeyNSProject() {
31
        addDescriptor(getRootDescriptor());
32
        addDescriptor(getEmployeeDescriptor());
33
        addDescriptor(getAddressDescriptor());
34
    }
35
36
    private XMLDescriptor getRootDescriptor() {
37
        XMLDescriptor descriptor = new XMLDescriptor();
38
        descriptor.setJavaClass(Root.class);
39
        descriptor.setDefaultRootElement("ns:root");
40
        // create namespace resolver
41
        NamespaceResolver nsResolver = new NamespaceResolver();
42
        nsResolver.put("ns", "urn:example");
43
        descriptor.setNamespaceResolver(nsResolver);
44
        // create employee mapping
45
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
46
        empMapping.setAttributeName("employee");
47
        empMapping.setXPath("ns:employee");
48
        empMapping.setReferenceClass(Employee.class);
49
        descriptor.addMapping(empMapping);
50
        // create address mapping
51
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
52
        addMapping.setAttributeName("addresses");
53
        addMapping.setXPath("ns:address");
54
        addMapping.setReferenceClass(Address.class);
55
        descriptor.addMapping(addMapping);
56
        return descriptor;
57
    }
58
    
59
    private XMLDescriptor getEmployeeDescriptor() {
60
        XMLDescriptor descriptor = new XMLDescriptor();
61
        descriptor.setJavaClass(Employee.class);
62
        descriptor.setDefaultRootElement("ns:employee");
63
        // create namespace resolver
64
        NamespaceResolver nsResolver = new NamespaceResolver();
65
        nsResolver.put("ns", "urn:example");
66
        descriptor.setNamespaceResolver(nsResolver);
67
        // create id mapping
68
        XMLDirectMapping idMapping = new XMLDirectMapping();
69
        idMapping.setAttributeName("id");
70
        idMapping.setXPath("@id");
71
        descriptor.addMapping(idMapping);
72
        // create name mapping
73
        XMLDirectMapping nameMapping = new XMLDirectMapping();
74
        nameMapping.setAttributeName("name");
75
        nameMapping.setXPath("ns:name/text()");
76
        descriptor.addMapping(nameMapping);
77
        // create address mapping
78
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
79
        addressMapping.useCollectionClass(ArrayList.class);
80
        addressMapping.setAttributeName("addresses");
81
        addressMapping.setReferenceClass(Address.class);
82
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
83
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
84
        descriptor.addMapping(addressMapping);
85
        return descriptor;
86
    }
87
88
    private XMLDescriptor getAddressDescriptor() {
89
        XMLDescriptor descriptor = new XMLDescriptor();
90
        descriptor.setJavaClass(Address.class);
91
        descriptor.addPrimaryKeyFieldName("ns:city/text()");
92
        descriptor.addPrimaryKeyFieldName("ns:zip/text()");
93
        descriptor.setDefaultRootElement("ns:address");
94
        // create namespace resolver
95
        NamespaceResolver nsResolver = new NamespaceResolver();
96
        nsResolver.put("ns", "urn:example");
97
        descriptor.setNamespaceResolver(nsResolver);
98
        // create id mapping
99
        XMLDirectMapping idMapping = new XMLDirectMapping();
100
        idMapping.setAttributeName("id");
101
        idMapping.setXPath("@aid");
102
        descriptor.addMapping(idMapping);
103
        // create street mapping
104
        XMLDirectMapping streetMapping = new XMLDirectMapping();
105
        streetMapping.setAttributeName("street");
106
        streetMapping.setXPath("ns:street/text()");
107
        descriptor.addMapping(streetMapping);
108
        // create city mapping
109
        XMLDirectMapping cityMapping = new XMLDirectMapping();
110
        cityMapping.setAttributeName("city");
111
        cityMapping.setXPath("ns:city/text()");
112
        descriptor.addMapping(cityMapping);
113
        // create country mapping
114
        XMLDirectMapping countryMapping = new XMLDirectMapping();
115
        countryMapping.setAttributeName("country");
116
        countryMapping.setXPath("ns:country/text()");
117
        descriptor.addMapping(countryMapping);
118
        // create zip mapping
119
        XMLDirectMapping zipMapping = new XMLDirectMapping();
120
        zipMapping.setAttributeName("zip");
121
        zipMapping.setXPath("ns:zip/text()");
122
        descriptor.addMapping(zipMapping);
123
        return descriptor;
124
    }
125
126
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (+126 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.NamespaceResolver;
18
import org.eclipse.persistence.oxm.XMLDescriptor;
19
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
22
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
23
import org.eclipse.persistence.sessions.Project;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
26
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
27
28
public class CompositeElementKeyNSProject extends Project {
29
30
    public CompositeElementKeyNSProject() {
31
        addDescriptor(getRootDescriptor());
32
        addDescriptor(getEmployeeDescriptor());
33
        addDescriptor(getAddressDescriptor());
34
    }
35
36
    private XMLDescriptor getRootDescriptor() {
37
        XMLDescriptor descriptor = new XMLDescriptor();
38
        descriptor.setJavaClass(Root.class);
39
        descriptor.setDefaultRootElement("ns:root");
40
        // create namespace resolver
41
        NamespaceResolver nsResolver = new NamespaceResolver();
42
        nsResolver.put("ns", "urn:example");
43
        descriptor.setNamespaceResolver(nsResolver);
44
        // create employee mapping
45
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
46
        empMapping.setAttributeName("employee");
47
        empMapping.setXPath("ns:employee");
48
        empMapping.setReferenceClass(Employee.class);
49
        descriptor.addMapping(empMapping);
50
        // create address mapping
51
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
52
        addMapping.setAttributeName("addresses");
53
        addMapping.setXPath("ns:address");
54
        addMapping.setReferenceClass(Address.class);
55
        descriptor.addMapping(addMapping);
56
        return descriptor;
57
    }
58
    
59
    private XMLDescriptor getEmployeeDescriptor() {
60
        XMLDescriptor descriptor = new XMLDescriptor();
61
        descriptor.setJavaClass(Employee.class);
62
        descriptor.setDefaultRootElement("ns:employee");
63
        // create namespace resolver
64
        NamespaceResolver nsResolver = new NamespaceResolver();
65
        nsResolver.put("ns", "urn:example");
66
        descriptor.setNamespaceResolver(nsResolver);
67
        // create id mapping
68
        XMLDirectMapping idMapping = new XMLDirectMapping();
69
        idMapping.setAttributeName("id");
70
        idMapping.setXPath("@id");
71
        descriptor.addMapping(idMapping);
72
        // create name mapping
73
        XMLDirectMapping nameMapping = new XMLDirectMapping();
74
        nameMapping.setAttributeName("name");
75
        nameMapping.setXPath("ns:name/text()");
76
        descriptor.addMapping(nameMapping);
77
        // create address mapping
78
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
79
        addressMapping.useCollectionClass(ArrayList.class);
80
        addressMapping.setAttributeName("addresses");
81
        addressMapping.setReferenceClass(Address.class);
82
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
83
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
84
        descriptor.addMapping(addressMapping);
85
        return descriptor;
86
    }
87
88
    private XMLDescriptor getAddressDescriptor() {
89
        XMLDescriptor descriptor = new XMLDescriptor();
90
        descriptor.setJavaClass(Address.class);
91
        descriptor.addPrimaryKeyFieldName("ns:city/text()");
92
        descriptor.addPrimaryKeyFieldName("ns:zip/text()");
93
        descriptor.setDefaultRootElement("ns:address");
94
        // create namespace resolver
95
        NamespaceResolver nsResolver = new NamespaceResolver();
96
        nsResolver.put("ns", "urn:example");
97
        descriptor.setNamespaceResolver(nsResolver);
98
        // create id mapping
99
        XMLDirectMapping idMapping = new XMLDirectMapping();
100
        idMapping.setAttributeName("id");
101
        idMapping.setXPath("@aid");
102
        descriptor.addMapping(idMapping);
103
        // create street mapping
104
        XMLDirectMapping streetMapping = new XMLDirectMapping();
105
        streetMapping.setAttributeName("street");
106
        streetMapping.setXPath("ns:street/text()");
107
        descriptor.addMapping(streetMapping);
108
        // create city mapping
109
        XMLDirectMapping cityMapping = new XMLDirectMapping();
110
        cityMapping.setAttributeName("city");
111
        cityMapping.setXPath("ns:city/text()");
112
        descriptor.addMapping(cityMapping);
113
        // create country mapping
114
        XMLDirectMapping countryMapping = new XMLDirectMapping();
115
        countryMapping.setAttributeName("country");
116
        countryMapping.setXPath("ns:country/text()");
117
        descriptor.addMapping(countryMapping);
118
        // create zip mapping
119
        XMLDirectMapping zipMapping = new XMLDirectMapping();
120
        zipMapping.setAttributeName("zip");
121
        zipMapping.setXPath("ns:zip/text()");
122
        descriptor.addMapping(zipMapping);
123
        return descriptor;
124
    }
125
126
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml";
24
25
    public CompositeElementKeyNSTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyNSProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (+113 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.XMLDescriptor;
18
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
19
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
22
import org.eclipse.persistence.sessions.Project;
23
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
26
27
public class CompositeElementKeyProject extends Project {
28
29
    public CompositeElementKeyProject() {
30
        addDescriptor(getRootDescriptor());
31
        addDescriptor(getEmployeeDescriptor());
32
        addDescriptor(getAddressDescriptor());
33
    }
34
35
    private XMLDescriptor getRootDescriptor() {
36
        XMLDescriptor descriptor = new XMLDescriptor();
37
        descriptor.setJavaClass(Root.class);
38
        descriptor.setDefaultRootElement("root");
39
        // create employee mapping
40
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
41
        empMapping.setAttributeName("employee");
42
        empMapping.setXPath("employee");
43
        empMapping.setReferenceClass(Employee.class);
44
        descriptor.addMapping(empMapping);
45
        // create address mapping
46
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
47
        addMapping.setAttributeName("addresses");
48
        addMapping.setXPath("address");
49
        addMapping.setReferenceClass(Address.class);
50
        descriptor.addMapping(addMapping);
51
        return descriptor;
52
    }
53
    
54
    private XMLDescriptor getEmployeeDescriptor() {
55
        XMLDescriptor descriptor = new XMLDescriptor();
56
        descriptor.setJavaClass(Employee.class);
57
        descriptor.setDefaultRootElement("employee");
58
        // create id mapping
59
        XMLDirectMapping idMapping = new XMLDirectMapping();
60
        idMapping.setAttributeName("id");
61
        idMapping.setXPath("@id");
62
        descriptor.addMapping(idMapping);
63
        // create name mapping
64
        XMLDirectMapping nameMapping = new XMLDirectMapping();
65
        nameMapping.setAttributeName("name");
66
        nameMapping.setXPath("name/text()");
67
        descriptor.addMapping(nameMapping);
68
        // create address mapping
69
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
70
        addressMapping.useCollectionClass(ArrayList.class);
71
        addressMapping.setAttributeName("addresses");
72
        addressMapping.setReferenceClass(Address.class);
73
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
75
        descriptor.addMapping(addressMapping);
76
        return descriptor;
77
    }
78
79
    private XMLDescriptor getAddressDescriptor() {
80
        XMLDescriptor descriptor = new XMLDescriptor();
81
        descriptor.setJavaClass(Address.class);
82
        descriptor.addPrimaryKeyFieldName("city/text()");
83
        descriptor.addPrimaryKeyFieldName("zip/text()");
84
        descriptor.setDefaultRootElement("address");
85
        // create id mapping
86
        XMLDirectMapping idMapping = new XMLDirectMapping();
87
        idMapping.setAttributeName("id");
88
        idMapping.setXPath("@aid");
89
        descriptor.addMapping(idMapping);
90
        // create street mapping
91
        XMLDirectMapping streetMapping = new XMLDirectMapping();
92
        streetMapping.setAttributeName("street");
93
        streetMapping.setXPath("street/text()");
94
        descriptor.addMapping(streetMapping);
95
        // create city mapping
96
        XMLDirectMapping cityMapping = new XMLDirectMapping();
97
        cityMapping.setAttributeName("city");
98
        cityMapping.setXPath("city/text()");
99
        descriptor.addMapping(cityMapping);
100
        // create country mapping
101
        XMLDirectMapping countryMapping = new XMLDirectMapping();
102
        countryMapping.setAttributeName("country");
103
        countryMapping.setXPath("country/text()");
104
        descriptor.addMapping(countryMapping);
105
        // create zip mapping
106
        XMLDirectMapping zipMapping = new XMLDirectMapping();
107
        zipMapping.setAttributeName("zip");
108
        zipMapping.setXPath("zip/text()");
109
        descriptor.addMapping(zipMapping);
110
        return descriptor;
111
    }
112
113
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml";
24
25
    public CompositeElementKeyTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (+127 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.NamespaceResolver;
18
import org.eclipse.persistence.oxm.XMLDescriptor;
19
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
22
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
23
import org.eclipse.persistence.sessions.Project;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
26
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
27
28
public class CompositeElementKeyWithGroupingNSProject extends Project {
29
30
    public CompositeElementKeyWithGroupingNSProject() {
31
        addDescriptor(getRootDescriptor());
32
        addDescriptor(getEmployeeDescriptor());
33
        addDescriptor(getAddressDescriptor());
34
    }
35
36
    private XMLDescriptor getRootDescriptor() {
37
        XMLDescriptor descriptor = new XMLDescriptor();
38
        descriptor.setJavaClass(Root.class);
39
        descriptor.setDefaultRootElement("ns:root");
40
        // create namespace resolver
41
        NamespaceResolver nsResolver = new NamespaceResolver();
42
        nsResolver.put("ns", "urn:example");
43
        descriptor.setNamespaceResolver(nsResolver);
44
        // create employee mapping
45
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
46
        empMapping.setAttributeName("employee");
47
        empMapping.setXPath("ns:employee");
48
        empMapping.setReferenceClass(Employee.class);
49
        descriptor.addMapping(empMapping);
50
        // create address mapping
51
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
52
        addMapping.setAttributeName("addresses");
53
        addMapping.setXPath("ns:address");
54
        addMapping.setReferenceClass(Address.class);
55
        descriptor.addMapping(addMapping);
56
        return descriptor;
57
    }
58
59
    private XMLDescriptor getEmployeeDescriptor() {
60
        XMLDescriptor descriptor = new XMLDescriptor();
61
        descriptor.setJavaClass(Employee.class);
62
        descriptor.setDefaultRootElement("employee");
63
        // create namespace resolver
64
        NamespaceResolver nsResolver = new NamespaceResolver();
65
        nsResolver.put("ns", "urn:example");
66
        descriptor.setNamespaceResolver(nsResolver);
67
        // create id mapping
68
        XMLDirectMapping idMapping = new XMLDirectMapping();
69
        idMapping.setAttributeName("id");
70
        idMapping.setXPath("@id");
71
        descriptor.addMapping(idMapping);
72
        // create name mapping
73
        XMLDirectMapping nameMapping = new XMLDirectMapping();
74
        nameMapping.setAttributeName("name");
75
        nameMapping.setXPath("ns:name/text()");
76
        descriptor.addMapping(nameMapping);
77
        // create address mapping
78
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
79
        addressMapping.useCollectionClass(ArrayList.class);
80
        addressMapping.setAttributeName("addresses");
81
        addressMapping.setXPath("ns:grouping-element");
82
        addressMapping.setReferenceClass(Address.class);
83
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
84
        addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
85
        descriptor.addMapping(addressMapping);
86
        return descriptor;
87
    }
88
89
    private XMLDescriptor getAddressDescriptor() {
90
        XMLDescriptor descriptor = new XMLDescriptor();
91
        descriptor.setJavaClass(Address.class);
92
        descriptor.addPrimaryKeyFieldName("ns:city/text()");
93
        descriptor.addPrimaryKeyFieldName("ns:zip/text()");
94
        descriptor.setDefaultRootElement("address");
95
        // create namespace resolver
96
        NamespaceResolver nsResolver = new NamespaceResolver();
97
        nsResolver.put("ns", "urn:example");
98
        descriptor.setNamespaceResolver(nsResolver);
99
        // create id mapping
100
        XMLDirectMapping idMapping = new XMLDirectMapping();
101
        idMapping.setAttributeName("id");
102
        idMapping.setXPath("@aid");
103
        descriptor.addMapping(idMapping);
104
        // create street mapping
105
        XMLDirectMapping streetMapping = new XMLDirectMapping();
106
        streetMapping.setAttributeName("street");
107
        streetMapping.setXPath("ns:street/text()");
108
        descriptor.addMapping(streetMapping);
109
        // create city mapping
110
        XMLDirectMapping cityMapping = new XMLDirectMapping();
111
        cityMapping.setAttributeName("city");
112
        cityMapping.setXPath("ns:city/text()");
113
        descriptor.addMapping(cityMapping);
114
        // create country mapping
115
        XMLDirectMapping countryMapping = new XMLDirectMapping();
116
        countryMapping.setAttributeName("country");
117
        countryMapping.setXPath("ns:country/text()");
118
        descriptor.addMapping(countryMapping);
119
        // create zip mapping
120
        XMLDirectMapping zipMapping = new XMLDirectMapping();
121
        zipMapping.setAttributeName("zip");
122
        zipMapping.setXPath("ns:zip/text()");
123
        descriptor.addMapping(zipMapping);
124
        return descriptor;
125
    }
126
127
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml";
24
25
    public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyWithGroupingNSProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (+114 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.oxm.XMLDescriptor;
18
import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
19
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
20
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
21
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
22
import org.eclipse.persistence.sessions.Project;
23
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
24
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
25
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
26
27
public class CompositeElementKeyWithGroupingProject extends Project {
28
29
    public CompositeElementKeyWithGroupingProject() {
30
        addDescriptor(getRootDescriptor());
31
        addDescriptor(getEmployeeDescriptor());
32
        addDescriptor(getAddressDescriptor());
33
    }
34
35
    private XMLDescriptor getRootDescriptor() {
36
        XMLDescriptor descriptor = new XMLDescriptor();
37
        descriptor.setJavaClass(Root.class);
38
        descriptor.setDefaultRootElement("root");
39
        // create employee mapping
40
        XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
41
        empMapping.setAttributeName("employee");
42
        empMapping.setXPath("employee");
43
        empMapping.setReferenceClass(Employee.class);
44
        descriptor.addMapping(empMapping);
45
        // create address mapping
46
        XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
47
        addMapping.setAttributeName("addresses");
48
        addMapping.setXPath("address");
49
        addMapping.setReferenceClass(Address.class);
50
        descriptor.addMapping(addMapping);
51
        return descriptor;
52
    }
53
54
    private XMLDescriptor getEmployeeDescriptor() {
55
        XMLDescriptor descriptor = new XMLDescriptor();
56
        descriptor.setJavaClass(Employee.class);
57
        descriptor.setDefaultRootElement("employee");
58
        // create id mapping
59
        XMLDirectMapping idMapping = new XMLDirectMapping();
60
        idMapping.setAttributeName("id");
61
        idMapping.setXPath("@id");
62
        descriptor.addMapping(idMapping);
63
        // create name mapping
64
        XMLDirectMapping nameMapping = new XMLDirectMapping();
65
        nameMapping.setAttributeName("name");
66
        nameMapping.setXPath("name/text()");
67
        descriptor.addMapping(nameMapping);
68
        // create address mapping
69
        XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
70
        addressMapping.useCollectionClass(ArrayList.class);
71
        addressMapping.setAttributeName("addresses");
72
        addressMapping.setXPath("grouping-element");
73
        addressMapping.setReferenceClass(Address.class);
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
75
        addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
76
        descriptor.addMapping(addressMapping);
77
        return descriptor;
78
    }
79
80
    private XMLDescriptor getAddressDescriptor() {
81
        XMLDescriptor descriptor = new XMLDescriptor();
82
        descriptor.setJavaClass(Address.class);
83
        descriptor.addPrimaryKeyFieldName("city/text()");
84
        descriptor.addPrimaryKeyFieldName("zip/text()");
85
        descriptor.setDefaultRootElement("address");
86
        // create id mapping
87
        XMLDirectMapping idMapping = new XMLDirectMapping();
88
        idMapping.setAttributeName("id");
89
        idMapping.setXPath("@aid");
90
        descriptor.addMapping(idMapping);
91
        // create street mapping
92
        XMLDirectMapping streetMapping = new XMLDirectMapping();
93
        streetMapping.setAttributeName("street");
94
        streetMapping.setXPath("street/text()");
95
        descriptor.addMapping(streetMapping);
96
        // create city mapping
97
        XMLDirectMapping cityMapping = new XMLDirectMapping();
98
        cityMapping.setAttributeName("city");
99
        cityMapping.setXPath("city/text()");
100
        descriptor.addMapping(cityMapping);
101
        // create country mapping
102
        XMLDirectMapping countryMapping = new XMLDirectMapping();
103
        countryMapping.setAttributeName("country");
104
        countryMapping.setXPath("country/text()");
105
        descriptor.addMapping(countryMapping);
106
        // create zip mapping
107
        XMLDirectMapping zipMapping = new XMLDirectMapping();
108
        zipMapping.setAttributeName("zip");
109
        zipMapping.setXPath("zip/text()");
110
        descriptor.addMapping(zipMapping);
111
        return descriptor;
112
    }
113
114
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (+77 lines)
Line 0 Link Here
1
/*******************************************************************************
2
* Copyright (c) 1998, 2009 Oracle. All rights reserved.
3
* This program and the accompanying materials are made available under the
4
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
5
* which accompanies this distribution.
6
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
* and the Eclipse Distribution License is available at
8
* http://www.eclipse.org/org/documents/edl-v10.php.
9
*
10
* Contributors:
11
*     bdoughan - Oct 21/2009 - 2.0 - Initial implementation
12
******************************************************************************/
13
package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
14
15
import java.util.ArrayList;
16
17
import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
21
22
public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases {
23
    private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml";
24
25
    public CompositeElementKeyWithGroupingTestCases(String name) throws Exception {
26
        super(name);
27
        setControlDocument(XML_RESOURCE);
28
        setProject(new CompositeElementKeyWithGroupingProject());
29
    }
30
31
    protected Object getControlObject() {
32
        ArrayList addresses = new ArrayList(4);
33
34
        Address address = new Address();
35
        address.id = CONTROL_ADD_ID_1;
36
        address.street = CONTROL_ADD_STREET_1;
37
        address.city = CONTROL_ADD_CITY_1;
38
        address.country = CONTROL_ADD_COUNTRY_1;
39
        address.zip = CONTROL_ADD_ZIP_1;
40
        addresses.add(address);
41
42
        address = new Address();
43
        address.id = CONTROL_ADD_ID_2;
44
        address.street = CONTROL_ADD_STREET_2;
45
        address.city = CONTROL_ADD_CITY_2;
46
        address.country = CONTROL_ADD_COUNTRY_2;
47
        address.zip = CONTROL_ADD_ZIP_2;
48
        addresses.add(address);
49
50
        address = new Address();
51
        address.id = CONTROL_ADD_ID_3;
52
        address.street = CONTROL_ADD_STREET_3;
53
        address.city = CONTROL_ADD_CITY_3;
54
        address.country = CONTROL_ADD_COUNTRY_3;
55
        address.zip = CONTROL_ADD_ZIP_3;
56
        addresses.add(address);
57
58
        address = new Address();
59
        address.id = CONTROL_ADD_ID_4;
60
        address.street = CONTROL_ADD_STREET_4;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
65
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
72
        root.employee = employee;
73
        root.addresses = addresses;
74
        return root;
75
    }
76
77
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java (-2 / +3 lines)
Lines 69-77 Link Here
69
		XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
69
		XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
70
		addressMapping.useCollectionClass(ArrayList.class);
70
		addressMapping.useCollectionClass(ArrayList.class);
71
		addressMapping.setAttributeName("addresses");
71
		addressMapping.setAttributeName("addresses");
72
		addressMapping.setXPath("addresses");
72
		addressMapping.setReferenceClass(Address.class);
73
		addressMapping.setReferenceClass(Address.class);
73
        addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-city", "city/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-city", "city/text()");
74
        addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-zip", "zip/text()");
75
        addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-zip", "zip/text()");
75
        addressMapping.setUsesSingleNode(false);
76
        addressMapping.setUsesSingleNode(false);
76
		descriptor.addMapping(addressMapping);
77
		descriptor.addMapping(addressMapping);
77
		return descriptor;
78
		return descriptor;
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java (-5 / +15 lines)
Lines 55-70 Link Here
55
		address.zip = CONTROL_ADD_ZIP_3;
55
		address.zip = CONTROL_ADD_ZIP_3;
56
		addresses.add(address);
56
		addresses.add(address);
57
57
58
		Employee employee = new Employee();
58
        address = new Address();
59
		employee.id = CONTROL_ID;
59
        address.id = CONTROL_ADD_ID_4;
60
		employee.name = CONTROL_NAME;
60
        address.street = CONTROL_ADD_STREET_4;
61
		employee.addresses = addresses;
61
        address.city = CONTROL_ADD_CITY_4;
62
        address.country = CONTROL_ADD_COUNTRY_4;
63
        address.zip = CONTROL_ADD_ZIP_4;
64
        addresses.add(address);
62
65
63
		Root root = new Root();
66
        Employee employee = new Employee();
67
        employee.id = CONTROL_ID;
68
        employee.name = CONTROL_NAME;
69
        employee.addresses = addresses;
70
71
        Root root = new Root();
64
		root.employee = employee;
72
		root.employee = employee;
65
        root.addresses = addresses;
73
        root.addresses = addresses;
66
		return root;
74
		return root;
67
	}
75
	}
76
	/*
68
    public Object getWriteControlObject() {
77
    public Object getWriteControlObject() {
69
        ArrayList rootAddresses = new ArrayList();
78
        ArrayList rootAddresses = new ArrayList();
70
        ArrayList empAddresses = new ArrayList();
79
        ArrayList empAddresses = new ArrayList();
Lines 107-110 Link Here
107
        root.addresses = rootAddresses;
116
        root.addresses = rootAddresses;
108
        return root;
117
        return root;
109
    }
118
    }
119
    */
110
}
120
}
(-)src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java (-2 / +5 lines)
Lines 15-20 Link Here
15
import junit.framework.Test;
15
import junit.framework.Test;
16
import junit.framework.TestCase;
16
import junit.framework.TestCase;
17
import junit.framework.TestSuite;
17
import junit.framework.TestSuite;
18
19
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases;
18
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.SingleKeyTestCases;
20
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.SingleKeyTestCases;
19
//import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases;
21
//import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases;
20
22
Lines 22-29 Link Here
22
    public static Test suite() {
24
    public static Test suite() {
23
        TestSuite suite = new TestSuite("Multiple target test suite");
25
        TestSuite suite = new TestSuite("Multiple target test suite");
24
        suite.addTest(SingleKeyTestCases.suite());
26
        suite.addTest(SingleKeyTestCases.suite());
25
        // Keep the composite key test suite commented out until bug# 5683210 is addressed
27
26
        //suite.addTest(CompositeKeyTestCases.suite());
28
        // Testing fix for bug# 5683210
29
        suite.addTest(CompositeKeyTestCases.suite());
27
        return suite;
30
        return suite;
28
    }
31
    }
29
32

Return to bug 285889