Lines 34-52
Link Here
|
34 |
import org.eclipse.persistence.jaxb.xmlmodel.XmlJavaTypeAdapter; |
34 |
import org.eclipse.persistence.jaxb.xmlmodel.XmlJavaTypeAdapter; |
35 |
import org.eclipse.persistence.jaxb.JAXBEnumTypeConverter; |
35 |
import org.eclipse.persistence.jaxb.JAXBEnumTypeConverter; |
36 |
import org.eclipse.persistence.internal.helper.ClassConstants; |
36 |
import org.eclipse.persistence.internal.helper.ClassConstants; |
|
|
37 |
import org.eclipse.persistence.internal.jaxb.DefaultElementConverter; |
38 |
import org.eclipse.persistence.internal.jaxb.JAXBElementConverter; |
39 |
import org.eclipse.persistence.internal.jaxb.JAXBElementRootConverter; |
37 |
import org.eclipse.persistence.internal.jaxb.JAXBSetMethodAttributeAccessor; |
40 |
import org.eclipse.persistence.internal.jaxb.JAXBSetMethodAttributeAccessor; |
38 |
import org.eclipse.persistence.internal.jaxb.JaxbClassLoader; |
41 |
import org.eclipse.persistence.internal.jaxb.JaxbClassLoader; |
39 |
import org.eclipse.persistence.internal.jaxb.DomHandlerConverter; |
42 |
import org.eclipse.persistence.internal.jaxb.DomHandlerConverter; |
40 |
import org.eclipse.persistence.internal.jaxb.MultiArgInstantiationPolicy; |
43 |
import org.eclipse.persistence.internal.jaxb.MultiArgInstantiationPolicy; |
41 |
import org.eclipse.persistence.internal.jaxb.WrappedValue; |
44 |
import org.eclipse.persistence.internal.jaxb.WrappedValue; |
42 |
import org.eclipse.persistence.internal.jaxb.JAXBElementAttributeAccessor; |
|
|
43 |
import org.eclipse.persistence.mappings.AttributeAccessor; |
44 |
import org.eclipse.persistence.mappings.DatabaseMapping; |
45 |
import org.eclipse.persistence.mappings.DatabaseMapping; |
|
|
46 |
import org.eclipse.persistence.mappings.converters.Converter; |
45 |
|
47 |
|
46 |
import org.eclipse.persistence.oxm.*; |
48 |
import org.eclipse.persistence.oxm.*; |
47 |
import org.eclipse.persistence.oxm.mappings.*; |
49 |
import org.eclipse.persistence.oxm.mappings.*; |
48 |
import org.eclipse.persistence.oxm.mappings.converters.XMLListConverter; |
50 |
import org.eclipse.persistence.oxm.mappings.converters.XMLListConverter; |
49 |
import org.eclipse.persistence.oxm.mappings.converters.XMLRootConverter; |
|
|
50 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.IsSetNullPolicy; |
51 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.IsSetNullPolicy; |
51 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.NullPolicy; |
52 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.NullPolicy; |
52 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.XMLNullRepresentationType; |
53 |
import org.eclipse.persistence.oxm.mappings.nullpolicy.XMLNullRepresentationType; |
Lines 368-373
Link Here
|
368 |
public XMLChoiceCollectionMapping generateChoiceCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace) { |
369 |
public XMLChoiceCollectionMapping generateChoiceCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace) { |
369 |
ChoiceProperty prop = (ChoiceProperty)property; |
370 |
ChoiceProperty prop = (ChoiceProperty)property; |
370 |
XMLChoiceCollectionMapping mapping = new XMLChoiceCollectionMapping(); |
371 |
XMLChoiceCollectionMapping mapping = new XMLChoiceCollectionMapping(); |
|
|
372 |
mapping.setReuseContainer(true); |
371 |
mapping.setAttributeName(property.getPropertyName()); |
373 |
mapping.setAttributeName(property.getPropertyName()); |
372 |
if (property.isMethodProperty()) { |
374 |
if (property.isMethodProperty()) { |
373 |
if (property.getGetMethodName() == null) { |
375 |
if (property.getGetMethodName() == null) { |
Lines 413-420
Link Here
|
413 |
DatabaseMapping mapping; |
415 |
DatabaseMapping mapping; |
414 |
if(isCollection) { |
416 |
if(isCollection) { |
415 |
mapping = new XMLChoiceCollectionMapping(); |
417 |
mapping = new XMLChoiceCollectionMapping(); |
|
|
418 |
((XMLChoiceCollectionMapping) mapping).setReuseContainer(true); |
419 |
((XMLChoiceCollectionMapping) mapping).setConverter(new JAXBElementRootConverter(Object.class)); |
416 |
} else { |
420 |
} else { |
417 |
mapping = new XMLChoiceObjectMapping(); |
421 |
mapping = new XMLChoiceObjectMapping(); |
|
|
422 |
((XMLChoiceObjectMapping) mapping).setConverter(new JAXBElementRootConverter(Object.class)); |
418 |
} |
423 |
} |
419 |
mapping.setAttributeName(property.getPropertyName()); |
424 |
mapping.setAttributeName(property.getPropertyName()); |
420 |
if (property.isMethodProperty()) { |
425 |
if (property.isMethodProperty()) { |
Lines 434-447
Link Here
|
434 |
} |
439 |
} |
435 |
|
440 |
|
436 |
List<ElementDeclaration> referencedElements = property.getReferencedElements(); |
441 |
List<ElementDeclaration> referencedElements = property.getReferencedElements(); |
437 |
boolean hasJAXBElements = false; |
|
|
438 |
AttributeAccessor mappingAccessor = mapping.getAttributeAccessor(); |
439 |
if(property.getType().isArray()) { |
442 |
if(property.getType().isArray()) { |
440 |
JAXBObjectArrayAttributeAccessor accessor = new JAXBObjectArrayAttributeAccessor(mappingAccessor, mapping.getContainerPolicy()); |
443 |
JAXBObjectArrayAttributeAccessor accessor = new JAXBObjectArrayAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy()); |
441 |
accessor.setComponentClassName(property.getType().getComponentType().getRawName()); |
444 |
accessor.setComponentClassName(property.getType().getComponentType().getRawName()); |
442 |
mappingAccessor = accessor; |
445 |
mapping.setAttributeAccessor(accessor); |
443 |
} |
446 |
} |
444 |
Map<QName, Class> qNamesToScopeClass = new HashMap<QName, Class>(); |
|
|
445 |
for(ElementDeclaration element:referencedElements) { |
447 |
for(ElementDeclaration element:referencedElements) { |
446 |
QName elementName = element.getElementName(); |
448 |
QName elementName = element.getElementName(); |
447 |
boolean isText = !(this.typeInfo.containsKey(element.getJavaTypeName())) && !(element.getJavaTypeName().equals(OBJECT_CLASS_NAME)); |
449 |
boolean isText = !(this.typeInfo.containsKey(element.getJavaTypeName())) && !(element.getJavaTypeName().equals(OBJECT_CLASS_NAME)); |
Lines 450-526
Link Here
|
450 |
if(helper.getXMLToJavaTypeMap().get(element.getJavaType().getRawName()) == XMLConstants.BASE_64_BINARY_QNAME) { |
452 |
if(helper.getXMLToJavaTypeMap().get(element.getJavaType().getRawName()) == XMLConstants.BASE_64_BINARY_QNAME) { |
451 |
xmlField.setSchemaType(XMLConstants.BASE_64_BINARY_QNAME); |
453 |
xmlField.setSchemaType(XMLConstants.BASE_64_BINARY_QNAME); |
452 |
} |
454 |
} |
453 |
XMLMapping nestedMapping; |
455 |
DatabaseMapping nestedMapping; |
454 |
JAXBElementAttributeAccessor nestedAccessor; |
|
|
455 |
if(isCollection){ |
456 |
if(isCollection){ |
456 |
|
457 |
XMLChoiceCollectionMapping xmlChoiceCollectionMapping = (XMLChoiceCollectionMapping) mapping; |
457 |
nestedAccessor = new JAXBElementAttributeAccessor(mappingAccessor, mapping.getContainerPolicy()); |
458 |
xmlChoiceCollectionMapping.addChoiceElement(xmlField, element.getJavaTypeName()); |
458 |
((XMLChoiceCollectionMapping)mapping).addChoiceElement(xmlField, element.getJavaTypeName()); |
459 |
nestedMapping = (DatabaseMapping) xmlChoiceCollectionMapping.getChoiceElementMappings().get(xmlField); |
459 |
nestedMapping = ((XMLChoiceCollectionMapping)mapping).getChoiceElementMappings().get(xmlField); |
460 |
if(nestedMapping.isAbstractCompositeCollectionMapping()){ |
460 |
if(((DatabaseMapping)nestedMapping).isAbstractCompositeCollectionMapping()){ |
|
|
461 |
((XMLCompositeCollectionMapping)nestedMapping).setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
461 |
((XMLCompositeCollectionMapping)nestedMapping).setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
462 |
} |
462 |
} |
463 |
|
463 |
|
464 |
if (((DatabaseMapping) nestedMapping).isAbstractCompositeDirectCollectionMapping()) { |
464 |
if (nestedMapping.isAbstractCompositeDirectCollectionMapping()) { |
465 |
((XMLCompositeDirectCollectionMapping) nestedMapping).getNullPolicy().setNullRepresentedByEmptyNode(false); |
465 |
((XMLCompositeDirectCollectionMapping) nestedMapping).getNullPolicy().setNullRepresentedByEmptyNode(false); |
466 |
} |
466 |
} |
467 |
|
467 |
|
468 |
if (element.isList() && ((DatabaseMapping)nestedMapping).isAbstractCompositeDirectCollectionMapping()) { |
468 |
if (element.isList() && nestedMapping.isAbstractCompositeDirectCollectionMapping()) { |
469 |
XMLListConverter listConverter = new XMLListConverter(); |
469 |
XMLListConverter listConverter = new XMLListConverter(); |
470 |
listConverter.setObjectClassName(element.getJavaType().getQualifiedName()); |
470 |
listConverter.setObjectClassName(element.getJavaType().getQualifiedName()); |
471 |
((XMLCompositeDirectCollectionMapping)nestedMapping).setValueConverter(listConverter); |
471 |
((XMLCompositeDirectCollectionMapping)nestedMapping).setValueConverter(listConverter); |
472 |
} |
472 |
} |
473 |
}else{ |
473 |
}else{ |
474 |
nestedAccessor = new JAXBElementAttributeAccessor(mappingAccessor); |
474 |
XMLChoiceObjectMapping xmlChoiceObjectMapping = (XMLChoiceObjectMapping) mapping; |
475 |
((XMLChoiceObjectMapping)mapping).addChoiceElement(xmlField, element.getJavaTypeName()); |
475 |
xmlChoiceObjectMapping.addChoiceElement(xmlField, element.getJavaTypeName()); |
476 |
nestedMapping = ((XMLChoiceObjectMapping)mapping).getChoiceElementMappings().get(xmlField); |
476 |
nestedMapping = (DatabaseMapping) xmlChoiceObjectMapping.getChoiceElementMappings().get(xmlField); |
477 |
if(((DatabaseMapping)nestedMapping).isAbstractCompositeObjectMapping()){ |
477 |
if(nestedMapping.isAbstractCompositeObjectMapping()){ |
478 |
((XMLCompositeObjectMapping)nestedMapping).setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
478 |
((XMLCompositeObjectMapping)nestedMapping).setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
479 |
} |
479 |
} |
480 |
} |
480 |
} |
481 |
|
481 |
|
482 |
if(!element.isXmlRootElement()) { |
482 |
if(!element.isXmlRootElement()) { |
483 |
XMLRootConverter converter = new XMLRootConverter(xmlField); |
483 |
Class scopeClass = element.getScopeClass(); |
|
|
484 |
if(scopeClass == javax.xml.bind.annotation.XmlElementDecl.GLOBAL.class){ |
485 |
scopeClass = JAXBElement.GlobalScope.class; |
486 |
} |
487 |
Class declaredType = helper.getClassForJavaClass(element.getJavaType()); |
488 |
JAXBElementConverter converter = new JAXBElementConverter(xmlField, declaredType, scopeClass); |
484 |
if(isCollection){ |
489 |
if(isCollection){ |
485 |
((XMLChoiceCollectionMapping)mapping).addConverter(xmlField, converter); |
490 |
XMLChoiceCollectionMapping xmlChoiceCollectionMapping = (XMLChoiceCollectionMapping) mapping; |
|
|
491 |
Converter originalConverter = xmlChoiceCollectionMapping.getConverter(xmlField); |
492 |
converter.setNestedConverter(originalConverter); |
493 |
xmlChoiceCollectionMapping.addConverter(xmlField, converter); |
486 |
}else{ |
494 |
}else{ |
487 |
((XMLChoiceObjectMapping)mapping).addConverter(xmlField, converter); |
495 |
XMLChoiceObjectMapping xmlChoiceObjectMapping = (XMLChoiceObjectMapping) mapping; |
|
|
496 |
Converter originalConverter = xmlChoiceObjectMapping.getConverter(xmlField); |
497 |
converter.setNestedConverter(originalConverter); |
498 |
xmlChoiceObjectMapping.addConverter(xmlField, converter); |
488 |
} |
499 |
} |
489 |
Class scopeClass = element.getScopeClass(); |
|
|
490 |
if(scopeClass == javax.xml.bind.annotation.XmlElementDecl.GLOBAL.class){ |
491 |
scopeClass = JAXBElement.GlobalScope.class; |
492 |
} |
493 |
qNamesToScopeClass.put(elementName, scopeClass); |
494 |
} |
500 |
} |
495 |
hasJAXBElements = hasJAXBElements || !element.isXmlRootElement(); |
|
|
496 |
Class theClass; |
497 |
theClass = helper.getClassForJavaClass(element.getJavaType()); |
498 |
|
499 |
nestedAccessor.setDeclaredType(theClass); |
500 |
|
501 |
nestedAccessor.setQNamesToScopes(qNamesToScopeClass); |
502 |
((DatabaseMapping)nestedMapping).setAttributeAccessor(nestedAccessor); |
503 |
} |
501 |
} |
504 |
if(hasJAXBElements) { |
|
|
505 |
JAXBElementAttributeAccessor accessor; |
506 |
if(isCollection){ |
507 |
accessor = new JAXBElementAttributeAccessor(mappingAccessor, mapping.getContainerPolicy()); |
508 |
}else{ |
509 |
accessor = new JAXBElementAttributeAccessor(mappingAccessor); |
510 |
} |
511 |
|
512 |
Class theClass = helper.getClassForJavaClass(property.getActualType()); |
513 |
accessor.setDeclaredType(theClass); |
514 |
|
515 |
accessor.setQNamesToScopes(qNamesToScopeClass); |
516 |
mapping.setAttributeAccessor(accessor); |
517 |
} |
518 |
descriptor.addMapping(mapping); |
502 |
descriptor.addMapping(mapping); |
519 |
return (XMLMapping)mapping; |
503 |
return (XMLMapping)mapping; |
520 |
|
504 |
|
521 |
} |
505 |
} |
522 |
|
506 |
|
523 |
|
|
|
524 |
public XMLAnyCollectionMapping generateAnyCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed) { |
507 |
public XMLAnyCollectionMapping generateAnyCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed) { |
525 |
boolean isLax = false; |
508 |
boolean isLax = false; |
526 |
Class domHandlerClass = null; |
509 |
Class domHandlerClass = null; |
Lines 532-537
Link Here
|
532 |
} |
515 |
} |
533 |
XMLAnyCollectionMapping mapping = new XMLAnyCollectionMapping(); |
516 |
XMLAnyCollectionMapping mapping = new XMLAnyCollectionMapping(); |
534 |
mapping.setAttributeName(property.getPropertyName()); |
517 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
518 |
mapping.setReuseContainer(true); |
535 |
if (property.isMethodProperty()) { |
519 |
if (property.isMethodProperty()) { |
536 |
if (property.getGetMethodName() == null) { |
520 |
if (property.getGetMethodName() == null) { |
537 |
// handle case of set with no get method |
521 |
// handle case of set with no get method |
Lines 550-568
Link Here
|
550 |
if(!isMixed) { |
534 |
if(!isMixed) { |
551 |
mapping.setUseXMLRoot(true); |
535 |
mapping.setUseXMLRoot(true); |
552 |
} |
536 |
} |
553 |
JAXBElementAttributeAccessor accessor = new JAXBElementAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy()); |
|
|
554 |
|
537 |
|
555 |
Class theClass = helper.getClassForJavaClass(property.getActualType()); |
538 |
Class declaredType = helper.getClassForJavaClass(property.getActualType()); |
556 |
accessor.setDeclaredType(theClass); |
539 |
JAXBElementRootConverter jaxbElementRootConverter = new JAXBElementRootConverter(declaredType); |
557 |
mapping.setAttributeAccessor(accessor); |
540 |
mapping.setConverter(jaxbElementRootConverter); |
|
|
541 |
|
558 |
if(isLax) { |
542 |
if(isLax) { |
559 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
543 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
560 |
} else { |
544 |
} else { |
561 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT); |
545 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT); |
562 |
} |
546 |
} |
563 |
if(domHandlerClass != null) { |
547 |
if(domHandlerClass != null) { |
564 |
DomHandlerConverter converter = new DomHandlerConverter(domHandlerClass); |
548 |
jaxbElementRootConverter.setNestedConverter(new DomHandlerConverter(domHandlerClass)); |
565 |
mapping.setConverter(converter); |
|
|
566 |
} |
549 |
} |
567 |
descriptor.addMapping(mapping); |
550 |
descriptor.addMapping(mapping); |
568 |
mapping.setMixedContent(isMixed); |
551 |
mapping.setMixedContent(isMixed); |
Lines 599-604
Link Here
|
599 |
if(referenceClassName == null){ |
582 |
if(referenceClassName == null){ |
600 |
((XMLField)mapping.getField()).setIsTypedTextField(true); |
583 |
((XMLField)mapping.getField()).setIsTypedTextField(true); |
601 |
((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME); |
584 |
((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME); |
|
|
585 |
String defaultValue = property.getDefaultValue(); |
586 |
if(null != defaultValue) { |
587 |
mapping.setConverter(new DefaultElementConverter(defaultValue)); |
588 |
} |
602 |
}else{ |
589 |
}else{ |
603 |
mapping.setReferenceClassName(referenceClassName); |
590 |
mapping.setReferenceClassName(referenceClassName); |
604 |
} |
591 |
} |
Lines 764-769
Link Here
|
764 |
public void generateEnumCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info) { |
751 |
public void generateEnumCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info) { |
765 |
XMLCompositeDirectCollectionMapping mapping = new XMLCompositeDirectCollectionMapping(); |
752 |
XMLCompositeDirectCollectionMapping mapping = new XMLCompositeDirectCollectionMapping(); |
766 |
mapping.setAttributeName(property.getPropertyName()); |
753 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
754 |
mapping.setReuseContainer(true); |
767 |
if (property.isMethodProperty()) { |
755 |
if (property.isMethodProperty()) { |
768 |
if (property.getGetMethodName() == null) { |
756 |
if (property.getGetMethodName() == null) { |
769 |
// handle case of set with no get method |
757 |
// handle case of set with no get method |
Lines 801-806
Link Here
|
801 |
public void generateAnyAttributeMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
789 |
public void generateAnyAttributeMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
802 |
XMLAnyAttributeMapping mapping = new XMLAnyAttributeMapping(); |
790 |
XMLAnyAttributeMapping mapping = new XMLAnyAttributeMapping(); |
803 |
mapping.setAttributeName(property.getPropertyName()); |
791 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
792 |
mapping.setReuseContainer(true); |
804 |
if (property.isMethodProperty()) { |
793 |
if (property.isMethodProperty()) { |
805 |
if (property.getGetMethodName() == null) { |
794 |
if (property.getGetMethodName() == null) { |
806 |
// handle case of set with no get method |
795 |
// handle case of set with no get method |
Lines 846-855
Link Here
|
846 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
835 |
mapping.setKeepAsElementPolicy(UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT); |
847 |
} |
836 |
} |
848 |
mapping.setUseXMLRoot(true); |
837 |
mapping.setUseXMLRoot(true); |
849 |
JAXBElementAttributeAccessor accessor = new JAXBElementAttributeAccessor(mapping.getAttributeAccessor()); |
838 |
Class declaredType = helper.getClassForJavaClass(property.getActualType()); |
850 |
Class theClass = helper.getClassForJavaClass(property.getActualType()); |
839 |
JAXBElementRootConverter jaxbElementRootConverter = new JAXBElementRootConverter(declaredType); |
851 |
accessor.setDeclaredType(theClass); |
840 |
mapping.setConverter(jaxbElementRootConverter); |
852 |
mapping.setAttributeAccessor(accessor); |
|
|
853 |
descriptor.addMapping(mapping); |
841 |
descriptor.addMapping(mapping); |
854 |
} |
842 |
} |
855 |
|
843 |
|
Lines 879-884
Link Here
|
879 |
public XMLCompositeCollectionMapping generateMapMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
867 |
public XMLCompositeCollectionMapping generateMapMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
880 |
XMLCompositeCollectionMapping mapping = new XMLCompositeCollectionMapping(); |
868 |
XMLCompositeCollectionMapping mapping = new XMLCompositeCollectionMapping(); |
881 |
mapping.setAttributeName(property.getPropertyName()); |
869 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
870 |
mapping.setReuseContainer(true); |
882 |
XMLField field = getXPathForField(property, namespaceInfo, false); |
871 |
XMLField field = getXPathForField(property, namespaceInfo, false); |
883 |
JavaClass descriptorClass = helper.getJavaClass(descriptor.getJavaClassName()); |
872 |
JavaClass descriptorClass = helper.getJavaClass(descriptor.getJavaClassName()); |
884 |
JavaClass mapValueClass = helper.getJavaClass(MapValue.class); |
873 |
JavaClass mapValueClass = helper.getJavaClass(MapValue.class); |
Lines 1058-1063
Link Here
|
1058 |
public XMLCompositeCollectionMapping generateCompositeCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, String referenceClassName) { |
1047 |
public XMLCompositeCollectionMapping generateCompositeCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, String referenceClassName) { |
1059 |
XMLCompositeCollectionMapping mapping = new XMLCompositeCollectionMapping(); |
1048 |
XMLCompositeCollectionMapping mapping = new XMLCompositeCollectionMapping(); |
1060 |
mapping.setAttributeName(property.getPropertyName()); |
1049 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
1050 |
mapping.setReuseContainer(true); |
1061 |
if (property.isMethodProperty()) { |
1051 |
if (property.isMethodProperty()) { |
1062 |
if (property.getGetMethodName() == null) { |
1052 |
if (property.getGetMethodName() == null) { |
1063 |
// handle case of set with no get method |
1053 |
// handle case of set with no get method |
Lines 1120-1125
Link Here
|
1120 |
public XMLCompositeDirectCollectionMapping generateDirectCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
1110 |
public XMLCompositeDirectCollectionMapping generateDirectCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) { |
1121 |
XMLCompositeDirectCollectionMapping mapping = new XMLCompositeDirectCollectionMapping(); |
1111 |
XMLCompositeDirectCollectionMapping mapping = new XMLCompositeDirectCollectionMapping(); |
1122 |
mapping.setAttributeName(property.getPropertyName()); |
1112 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
1113 |
mapping.setReuseContainer(true); |
1123 |
if (property.isMethodProperty()) { |
1114 |
if (property.isMethodProperty()) { |
1124 |
if (property.getGetMethodName() == null) { |
1115 |
if (property.getGetMethodName() == null) { |
1125 |
// handle case of set with no get method |
1116 |
// handle case of set with no get method |
Lines 1367-1372
Link Here
|
1367 |
XMLField srcXPath = getXPathForField(property, namespaceInfo, true); |
1358 |
XMLField srcXPath = getXPathForField(property, namespaceInfo, true); |
1368 |
XMLCollectionReferenceMapping mapping = new XMLCollectionReferenceMapping(); |
1359 |
XMLCollectionReferenceMapping mapping = new XMLCollectionReferenceMapping(); |
1369 |
mapping.setAttributeName(property.getPropertyName()); |
1360 |
mapping.setAttributeName(property.getPropertyName()); |
|
|
1361 |
mapping.setReuseContainer(true); |
1370 |
if (property.isMethodProperty()) { |
1362 |
if (property.isMethodProperty()) { |
1371 |
if (property.getGetMethodName() == null) { |
1363 |
if (property.getGetMethodName() == null) { |
1372 |
// handle case of set with no get method |
1364 |
// handle case of set with no get method |
Lines 1673-1678
Link Here
|
1673 |
mapping.setAttributeName("value"); |
1665 |
mapping.setAttributeName("value"); |
1674 |
mapping.setXPath("text()"); |
1666 |
mapping.setXPath("text()"); |
1675 |
mapping.setUsesSingleNode(true); |
1667 |
mapping.setUsesSingleNode(true); |
|
|
1668 |
mapping.setReuseContainer(true); |
1676 |
|
1669 |
|
1677 |
if(type != null && type.isEnumerationType()){ |
1670 |
if(type != null && type.isEnumerationType()){ |
1678 |
mapping.setValueConverter(buildJAXBEnumTypeConverter(mapping, (EnumTypeInfo)type)); |
1671 |
mapping.setValueConverter(buildJAXBEnumTypeConverter(mapping, (EnumTypeInfo)type)); |