Examples of VariableXPathObjectMapping


Examples of org.eclipse.persistence.internal.oxm.mappings.VariableXPathObjectMapping

        if (null == value) {
            return false;
        }

        Object originalValue = value;
      VariableXPathObjectMapping mapping = (VariableXPathObjectMapping)this.getMapping();
      Descriptor descriptor = (Descriptor)mapping.getReferenceDescriptor();

      if(descriptor.hasInheritance()){
          Class objectValueClass = value.getClass();
           if(!(objectValueClass == descriptor.getJavaClass())){
             descriptor = (Descriptor) session.getDescriptor(objectValueClass);
           }
      }
         
      Marshaller marshaller = marshalRecord.getMarshaller();     
      ObjectBuilder objectBuilder = (TreeObjectBuilder)descriptor.getObjectBuilder();
      List extraNamespaces = objectBuilder.addExtraNamespacesToNamespaceResolver(descriptor, marshalRecord, session, true, true);
      //Change to get the value from the object
      String defaultRootElementString = descriptor.getDefaultRootElement();
         
      marshalRecord.beforeContainmentMarshal(value);
      XPathFragment rootFragment = mapping.getXPathFragmentForValue(value, marshalRecord.getNamespaceResolver(), marshalRecord.isNamespaceAware(), marshalRecord.getNamespaceSeparator());
            
      XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
      if(mapping.isAttribute()){       
           ObjectBuilder tob = (ObjectBuilder) mapping.getReferenceDescriptor().getObjectBuilder();
              MappingNodeValue textMappingNodeValue = (MappingNodeValue) tob.getRootXPathNode().getTextNode().getMarshalNodeValue();
              Mapping textMapping = textMappingNodeValue.getMapping();
              if(textMapping.isAbstractDirectMapping()) {
                  DirectMapping xmlDirectMapping = (DirectMapping) textMapping;
                  Object fieldValue = xmlDirectMapping.getFieldValue(xmlDirectMapping.valueFromObject(value, xmlDirectMapping.getField(), session), session, marshalRecord);
                  QName schemaType = ((Field) xmlDirectMapping.getField()).getSchemaTypeForValue(fieldValue, session);
                  marshalRecord.attribute(rootFragment, namespaceResolver, fieldValue, schemaType);
                  //marshalRecord.closeStartGroupingElements(groupingFragment);
                  return true;
              } else {
                  return textMappingNodeValue.marshalSingleValue(rootFragment, marshalRecord, value, textMapping.getAttributeValueFromObject(value), session, namespaceResolver, marshalContext);
              }
      }else{
        marshalRecord.closeStartGroupingElements(groupingFragment);
      getXPathNode().startElement(marshalRecord, rootFragment, object, session, marshalRecord.getNamespaceResolver(), objectBuilder, value);               
      writeExtraNamespaces(extraNamespaces, marshalRecord, session);
         
      marshalRecord.addXsiTypeAndClassIndicatorIfRequired(descriptor, (Descriptor)mapping.getReferenceDescriptor(), (Field)mapping.getField(), originalValue, value, false, false);              
      objectBuilder.buildRow(marshalRecord, value, session, marshaller, null);
      marshalRecord.afterContainmentMarshal(object, value);
      marshalRecord.endElement(rootFragment, namespaceResolver);
      marshalRecord.removeExtraNamespacesFromNamespaceResolver(extraNamespaces, session);
      }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.mappings.VariableXPathObjectMapping

        if (null == value) {
            return false;
        }

        Object originalValue = value;
      VariableXPathObjectMapping mapping = (VariableXPathObjectMapping)this.getMapping();
      Descriptor descriptor = (Descriptor)mapping.getReferenceDescriptor();

      if(descriptor.hasInheritance()){
          Class objectValueClass = value.getClass();
           if(!(objectValueClass == descriptor.getJavaClass())){
             descriptor = (Descriptor) session.getDescriptor(objectValueClass);
           }
      }
         
      Marshaller marshaller = marshalRecord.getMarshaller();     
      ObjectBuilder objectBuilder = (ObjectBuilder)descriptor.getObjectBuilder();
      List extraNamespaces = objectBuilder.addExtraNamespacesToNamespaceResolver(descriptor, marshalRecord, session, true, true);
      //Change to get the value from the object
      String defaultRootElementString = descriptor.getDefaultRootElement();
         
      marshalRecord.beforeContainmentMarshal(value);
      XPathFragment rootFragment = mapping.getXPathFragmentForValue(value, marshalRecord.getNamespaceResolver(), marshalRecord.isNamespaceAware(), marshalRecord.getNamespaceSeparator());
            
      XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
      if(mapping.isAttribute()){       
           ObjectBuilder tob = (ObjectBuilder) mapping.getReferenceDescriptor().getObjectBuilder();
              MappingNodeValue textMappingNodeValue = (MappingNodeValue) tob.getRootXPathNode().getTextNode().getMarshalNodeValue();
              Mapping textMapping = textMappingNodeValue.getMapping();
              if(textMapping.isAbstractDirectMapping()) {
                  DirectMapping xmlDirectMapping = (DirectMapping) textMapping;
                  Object fieldValue = xmlDirectMapping.getFieldValue(xmlDirectMapping.valueFromObject(value, xmlDirectMapping.getField(), session), session, marshalRecord);
                  QName schemaType = ((Field) xmlDirectMapping.getField()).getSchemaTypeForValue(fieldValue, session);
                  marshalRecord.attribute(rootFragment, namespaceResolver, fieldValue, schemaType);
                  //marshalRecord.closeStartGroupingElements(groupingFragment);
                  return true;
              } else {
                  return textMappingNodeValue.marshalSingleValue(rootFragment, marshalRecord, value, textMapping.getAttributeValueFromObject(value), session, namespaceResolver, marshalContext);
              }
      }else{
        marshalRecord.closeStartGroupingElements(groupingFragment);
      getXPathNode().startElement(marshalRecord, rootFragment, object, session, marshalRecord.getNamespaceResolver(), objectBuilder, value);               
      writeExtraNamespaces(extraNamespaces, marshalRecord, session);
         
      marshalRecord.addXsiTypeAndClassIndicatorIfRequired(descriptor, (Descriptor)mapping.getReferenceDescriptor(), (Field)mapping.getField(), originalValue, value, false, false);              
      objectBuilder.buildRow(marshalRecord, value, session, marshaller, null);
      marshalRecord.afterContainmentMarshal(object, value);
      marshalRecord.endElement(rootFragment, namespaceResolver);
      marshalRecord.removeExtraNamespacesFromNamespaceResolver(extraNamespaces, session);
      }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.mappings.VariableXPathObjectMapping

        if (null == value) {
            return false;
        }

        Object originalValue = value;
      VariableXPathObjectMapping mapping = (VariableXPathObjectMapping)this.getMapping();
      Descriptor descriptor = (Descriptor)mapping.getReferenceDescriptor();

      if(descriptor.hasInheritance()){
          Class objectValueClass = value.getClass();
           if(!(objectValueClass == descriptor.getJavaClass())){
             descriptor = (Descriptor) session.getDescriptor(objectValueClass);
           }
      }
         
      Marshaller marshaller = marshalRecord.getMarshaller();     
      ObjectBuilder objectBuilder = (ObjectBuilder)descriptor.getObjectBuilder();
      List extraNamespaces = objectBuilder.addExtraNamespacesToNamespaceResolver(descriptor, marshalRecord, session, true, true);
      //Change to get the value from the object
      String defaultRootElementString = descriptor.getDefaultRootElement();
         
      marshalRecord.beforeContainmentMarshal(value);
      XPathFragment rootFragment = mapping.getXPathFragmentForValue(value, marshalRecord.getNamespaceResolver(), marshalRecord.isNamespaceAware(), marshalRecord.getNamespaceSeparator());
            
      XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
      if(mapping.isAttribute()){       
           ObjectBuilder tob = (ObjectBuilder) mapping.getReferenceDescriptor().getObjectBuilder();
              MappingNodeValue textMappingNodeValue = (MappingNodeValue) tob.getRootXPathNode().getTextNode().getMarshalNodeValue();
              Mapping textMapping = textMappingNodeValue.getMapping();
              if(textMapping.isAbstractDirectMapping()) {
                  DirectMapping xmlDirectMapping = (DirectMapping) textMapping;
                  Object fieldValue = xmlDirectMapping.getFieldValue(xmlDirectMapping.valueFromObject(value, xmlDirectMapping.getField(), session), session, marshalRecord);
                  QName schemaType = ((Field) xmlDirectMapping.getField()).getSchemaTypeForValue(fieldValue, session);
                  marshalRecord.attribute(rootFragment, namespaceResolver, fieldValue, schemaType);
                  //marshalRecord.closeStartGroupingElements(groupingFragment);
                  return true;
              } else {
                  return textMappingNodeValue.marshalSingleValue(rootFragment, marshalRecord, value, textMapping.getAttributeValueFromObject(value), session, namespaceResolver, marshalContext);
              }
      }else{
        marshalRecord.closeStartGroupingElements(groupingFragment);
      getXPathNode().startElement(marshalRecord, rootFragment, object, session, marshalRecord.getNamespaceResolver(), objectBuilder, value);               
      writeExtraNamespaces(extraNamespaces, marshalRecord, session);
         
      marshalRecord.addXsiTypeAndClassIndicatorIfRequired(descriptor, (Descriptor)mapping.getReferenceDescriptor(), (Field)mapping.getField(), originalValue, value, false, false);              
      objectBuilder.buildRow(marshalRecord, value, session, marshaller, null);
      marshalRecord.afterContainmentMarshal(object, value);
      marshalRecord.endElement(rootFragment, namespaceResolver);
      marshalRecord.removeExtraNamespacesFromNamespaceResolver(extraNamespaces, session);
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.