/** * Gets the AttributeAccessor that is used to get and set the value of the * container on the target object. * @deprecated Replaced by getInverseReferenceMapping().getAttributeAccessor() */ @Deprecated public AttributeAccessor getContainerAccessor() { if (this.inverseReferenceMapping == null) { return null; } return this.inverseReferenceMapping.getAttributeAccessor(); }
/** * Gets the name of the backpointer attribute on the target object. Used to * populate the backpointer. * @deprecated Replaced by getInverseReferenceMapping().getAttributeName() */ @Deprecated public String getContainerAttributeName() { if (this.inverseReferenceMapping == null) { return null; } return this.inverseReferenceMapping.getAttributeName(); }
/** * Gets the name of the method to be used when accessing the value of the * back pointer on the target object of this mapping. * @deprecated Replaced by getInverseReferenceMapping().getGetMethodName() */ @Deprecated public String getContainerGetMethodName() { if (this.inverseReferenceMapping == null) { return null; } return this.inverseReferenceMapping.getGetMethodName(); }
/** * Build an XMLInverseMapping based on a particular mapping and replace that mapping with * the newly created XMLInverseMapping in jaxbDescriptor * @param jaxbDescriptor * @param mapping * @param mappedBy */ private static void convertMappingToXMLInverseReferenceMapping(ClassDescriptor jaxbDescriptor, DatabaseMapping mapping, ForeignReferenceMapping jpaMapping) { if ((mapping != null) && (jaxbDescriptor != null)) { if (!(mapping.isXMLMapping())) { return; } if ((jpaMapping.isAggregateCollectionMapping()) || (jpaMapping.isAggregateMapping())) { return; } XMLInverseReferenceMapping jaxbInverseMapping = new XMLInverseReferenceMapping(); copyAccessorToMapping(mapping, jaxbInverseMapping); jaxbInverseMapping.setProperties(mapping.getProperties()); jaxbInverseMapping.setIsReadOnly(mapping.isReadOnly()); jaxbInverseMapping.setMappedBy(jpaMapping.getAttributeName()); if (mapping.isAbstractCompositeCollectionMapping()) { jaxbInverseMapping.setContainerPolicy(mapping.getContainerPolicy()); jaxbInverseMapping.setReferenceClass(((XMLCompositeCollectionMapping) mapping).getReferenceClass()); } else if (mapping.isAbstractCompositeObjectMapping()) { jaxbInverseMapping.setReferenceClass(((XMLCompositeObjectMapping) mapping).getReferenceClass()); } jaxbDescriptor.removeMappingForAttributeName(mapping.getAttributeName()); jaxbDescriptor.addMapping(jaxbInverseMapping); } }
Class containerClass = null; if(oxmMapping instanceof XMLCompositeObjectMapping) { containerAccessor = ((XMLCompositeObjectMapping)oxmMapping).getInverseReferenceMapping().getAttributeAccessor(); containerClass = ((XMLCompositeObjectMapping)oxmMapping).getReferenceClass(); } else if(oxmMapping instanceof XMLCompositeCollectionMapping) { containerAccessor = ((XMLCompositeCollectionMapping)oxmMapping).getInverseReferenceMapping().getAttributeAccessor(); containerClass = ((XMLCompositeCollectionMapping)oxmMapping).getReferenceClass(); ormAccessor.setValueHolderProperty(ormContainerMapping instanceof OneToOneMapping && ((OneToOneMapping)ormContainerMapping).usesIndirection()); if(oxmMapping instanceof XMLCompositeObjectMapping) { ((XMLCompositeObjectMapping)oxmMapping).getInverseReferenceMapping().setAttributeAccessor(ormAccessor); } else if(oxmMapping instanceof XMLCompositeCollectionMapping) { ((XMLCompositeCollectionMapping)oxmMapping).getInverseReferenceMapping().setAttributeAccessor(ormAccessor); if(nextMapping instanceof XMLObjectReferenceMapping) { XMLObjectReferenceMapping refMapping = (XMLObjectReferenceMapping)nextMapping; if(refMapping.getInverseReferenceMapping().getAttributeAccessor() != null && refMapping.getInverseReferenceMapping().getContainerPolicy() != null) { ClassDescriptor refDescriptor = ormSession.getClassDescriptor(refMapping.getReferenceClass()); if(refDescriptor != null) { DatabaseMapping backpointerMapping =refDescriptor.getMappingForAttributeName(refMapping.getInverseReferenceMapping().getAttributeName()); if(backpointerMapping != null && backpointerMapping.isCollectionMapping()) { refMapping.getInverseReferenceMapping().getContainerPolicy().setContainerClass(((CollectionMapping)backpointerMapping).getContainerPolicy().getContainerClass());
while(cPolicy.hasNext(iterator)) { Object next = cPolicy.next(iterator, session); if(mapping.getInverseReferenceMapping().getContainerPolicy() == null) { mapping.getInverseReferenceMapping().getAttributeAccessor().setAttributeValueInObject(next, currentObject); } else { Object backpointerContainer = mapping.getInverseReferenceMapping().getAttributeAccessor().getAttributeValueFromObject(next); if(backpointerContainer == null) { backpointerContainer = mapping.getInverseReferenceMapping().getContainerPolicy().containerInstance(); mapping.getInverseReferenceMapping().getAttributeAccessor().setAttributeValueInObject(next, backpointerContainer); mapping.getInverseReferenceMapping().getContainerPolicy().addInto(currentObject, backpointerContainer, session); AttributeAccessor backpointerAccessor = mapping.getInverseReferenceMapping().getAttributeAccessor(); if(mapping.getInverseReferenceMapping().getContainerPolicy() == null) { backpointerAccessor.setAttributeValueInObject(value, reference.getSourceObject()); } else { Object backpointerContainer = backpointerAccessor.getAttributeValueFromObject(value); if(backpointerContainer == null) { backpointerContainer = mapping.getInverseReferenceMapping().getContainerPolicy().containerInstance(); backpointerAccessor.setAttributeValueInObject(value, backpointerContainer); mapping.getInverseReferenceMapping().getContainerPolicy().addInto(reference.getSourceObject(), backpointerContainer, session);
DatabaseMapping mapping = getReferenceDescriptor().getMappingForAttributeName(this.mappedBy); mapping = ((XMLInverseReferenceMapping)mapping).getInlineMapping(); if(next instanceof XMLCompositeObjectMapping) { XMLCompositeObjectMapping compositeMapping = ((XMLCompositeObjectMapping)next); if(compositeMapping.getReferenceClass() == this.getDescriptor().getJavaClass() || this.getDescriptor().getJavaClass().isAssignableFrom(compositeMapping.getReferenceClass())) { compositeMapping.setInverseReferenceMapping(this); if(refMapping.getReferenceClass() == this.getDescriptor().getJavaClass()) { refMapping.setInverseReferenceMapping(this); if(next instanceof XMLCompositeCollectionMapping) { XMLCompositeCollectionMapping compositeMapping = ((XMLCompositeCollectionMapping)next); if(compositeMapping.getReferenceClass() == this.getDescriptor().getJavaClass() || this.getDescriptor().getJavaClass().isAssignableFrom(compositeMapping.getReferenceClass())) { compositeMapping.setInverseReferenceMapping(this); if(refMapping.getReferenceClass() == this.getDescriptor().getJavaClass()) { refMapping.setInverseReferenceMapping(this);
/** * Gets the name of the method to be used when setting the value of the * back pointer on the target object of this mapping. * @deprecated Replaced by getInverseReferenceMapping().getSetMethodName() */ @Deprecated public String getContainerSetMethodName() { if (this.inverseReferenceMapping == null) { return null; } return this.inverseReferenceMapping.getSetMethodName(); }
/** * Sets the AttributeAccessor that is used to get and set the value of the * container on the target object. * * @param anAttributeAccessor - the accessor to be used. * @deprecated Replaced by getInverseReferenceMapping().setAttributeAccessor() */ @Deprecated public void setContainerAccessor(AttributeAccessor anAttributeAccessor) { if (this.inverseReferenceMapping == null) { return; } this.inverseReferenceMapping.setAttributeAccessor(anAttributeAccessor); }
/** * Sets the name of the backpointer attribute on the target object. Used to * populate the backpointer. If the specified attribute doesn't exist on * the reference class of this mapping, a DescriptorException will be thrown * during initialize. * * @param attributeName - the name of the backpointer attribute to be populated * @deprecated Replaced by getInverseReferenceMapping().setAttributeName() */ @Deprecated public void setContainerAttributeName(String attributeName) { if (this.inverseReferenceMapping == null) { return; } this.inverseReferenceMapping.setAttributeName(attributeName); }
setAttributeValueInObject(targetObject, attributeValue); if(null != getContainerAccessor()) { if(this.inverseReferenceMapping.getContainerPolicy() == null) { getContainerAccessor().setAttributeValueInObject(attributeValue, targetObject); } else { Object backpointerContainer = getContainerAccessor().getAttributeValueFromObject(attributeValue); if(backpointerContainer == null) { backpointerContainer = this.inverseReferenceMapping.getContainerPolicy().containerInstance(); getContainerAccessor().setAttributeValueInObject(attributeValue, backpointerContainer); this.inverseReferenceMapping.getContainerPolicy().addInto(targetObject, backpointerContainer, executionSession);
@Override public void initialize(AbstractSession session) throws DescriptorException { super.initialize(session); setFields(new Vector<DatabaseField> ()); }
private InverseReferenceMapping generateInverseReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespace) { InverseReferenceMapping invMapping = new XMLInverseReferenceMapping(); boolean isCollection = helper.isCollectionType(property.getType());
@Override public void postInitialize(AbstractSession session) throws DescriptorException { // Get the corresponding mapping from the reference descriptor and set up the // inverse mapping. DatabaseMapping mapping = getReferenceDescriptor().getMappingForAttributeName(this.mappedBy); if (mapping instanceof XMLCompositeCollectionMapping) { XMLCompositeCollectionMapping oppositeMapping = (XMLCompositeCollectionMapping) mapping; oppositeMapping.setInverseReferenceMapping(this); } if (mapping instanceof XMLCompositeObjectMapping) { XMLCompositeObjectMapping oppositeMapping = (XMLCompositeObjectMapping) mapping; oppositeMapping.setInverseReferenceMapping(this); } if (mapping instanceof XMLObjectReferenceMapping) { XMLObjectReferenceMapping oppositeMapping = (XMLObjectReferenceMapping) mapping; oppositeMapping.setInverseReferenceMapping(this); } }
/** * Build an XMLInverseMapping based on a particular mapping and replace that mapping with * the newly created XMLInverseMapping in jaxbDescriptor * @param jaxbDescriptor * @param mapping * @param mappedBy */ private static void convertMappingToXMLInverseReferenceMapping(ClassDescriptor jaxbDescriptor, DatabaseMapping mapping, ForeignReferenceMapping jpaMapping) { if ((mapping != null) && (jaxbDescriptor != null)) { if (!(mapping.isXMLMapping())) { return; } if ((jpaMapping.isAggregateCollectionMapping()) || (jpaMapping.isAggregateMapping())) { return; } XMLInverseReferenceMapping jaxbInverseMapping = new XMLInverseReferenceMapping(); copyAccessorToMapping(mapping, jaxbInverseMapping); jaxbInverseMapping.setProperties(mapping.getProperties()); jaxbInverseMapping.setIsReadOnly(mapping.isReadOnly()); jaxbInverseMapping.setMappedBy(jpaMapping.getAttributeName()); if (mapping.isAbstractCompositeCollectionMapping()) { jaxbInverseMapping.setContainerPolicy(mapping.getContainerPolicy()); jaxbInverseMapping.setReferenceClass(((XMLCompositeCollectionMapping) mapping).getReferenceClass()); } else if (mapping.isAbstractCompositeObjectMapping()) { jaxbInverseMapping.setReferenceClass(((XMLCompositeObjectMapping) mapping).getReferenceClass()); } jaxbDescriptor.removeMappingForAttributeName(mapping.getAttributeName()); jaxbDescriptor.addMapping(jaxbInverseMapping); } }
if(xmlCompositeCollectionMapping.getInverseReferenceMapping().getContainerPolicy() == null) { xmlCompositeCollectionMapping.getInverseReferenceMapping().getAttributeAccessor().setAttributeValueInObject(objectValue, unmarshalRecord.getCurrentObject()); } else { Object backpointerContainer = xmlCompositeCollectionMapping.getInverseReferenceMapping().getAttributeAccessor().getAttributeValueFromObject(objectValue); if(backpointerContainer == null) { backpointerContainer = xmlCompositeCollectionMapping.getInverseReferenceMapping().getContainerPolicy().containerInstance(); xmlCompositeCollectionMapping.getInverseReferenceMapping().getAttributeAccessor().setAttributeValueInObject(objectValue, backpointerContainer); xmlCompositeCollectionMapping.getInverseReferenceMapping().getContainerPolicy().addInto(unmarshalRecord.getCurrentObject(), backpointerContainer, unmarshalRecord.getSession());
DatabaseMapping mapping = getReferenceDescriptor().getMappingForAttributeName(this.mappedBy); mapping = ((XMLInverseReferenceMapping)mapping).getInlineMapping(); if(next instanceof XMLCompositeObjectMapping) { XMLCompositeObjectMapping compositeMapping = ((XMLCompositeObjectMapping)next); if(compositeMapping.getReferenceClass() == this.getDescriptor().getJavaClass() || this.getDescriptor().getJavaClass().isAssignableFrom(compositeMapping.getReferenceClass())) { compositeMapping.setInverseReferenceMapping(this); if(refMapping.getReferenceClass() == this.getDescriptor().getJavaClass()) { refMapping.setInverseReferenceMapping(this); if(next instanceof XMLCompositeCollectionMapping) { XMLCompositeCollectionMapping compositeMapping = ((XMLCompositeCollectionMapping)next); if(compositeMapping.getReferenceClass() == this.getDescriptor().getJavaClass() || this.getDescriptor().getJavaClass().isAssignableFrom(compositeMapping.getReferenceClass())) { compositeMapping.setInverseReferenceMapping(this); if(refMapping.getReferenceClass() == this.getDescriptor().getJavaClass()) { refMapping.setInverseReferenceMapping(this);
/** * Gets the name of the method to be used when setting the value of the * back pointer on the target object of this mapping. * @deprecated Replaced by getInverseReferenceMapping().getSetMethodName() */ @Deprecated public String getContainerSetMethodName() { if (this.inverseReferenceMapping == null) { return null; } return this.inverseReferenceMapping.getSetMethodName(); }
/** * Sets the AttributeAccessor that is used to get and set the value of the * container on the target object. * * @param anAttributeAccessor - the accessor to be used. * @deprecated Replaced by getInverseReferenceMapping().setAttributeAccessor() */ @Deprecated public void setContainerAccessor(AttributeAccessor anAttributeAccessor) { if (this.inverseReferenceMapping == null) { return; } this.inverseReferenceMapping.setAttributeAccessor(anAttributeAccessor); }
/** * Sets the name of the backpointer attribute on the target object. Used to * populate the backpointer. If the specified attribute doesn't exist on the * reference class of this mapping, a DescriptorException will be thrown * during initialize. * * @param attributeName - the name of the backpointer attribute to be populated * @deprecated Replaced by getInverseReferenceMapping().setAttributeName() */ @Deprecated public void setContainerAttributeName(String attributeName) { if (this.inverseReferenceMapping == null) { return; } this.inverseReferenceMapping.setAttributeName(attributeName); }