Class NullPolicy


  • public class NullPolicy
    extends AbstractNullPolicy
    PUBLIC: Description: This null policy is the default implementation class.
    Marshal:
    The boolean value of the isSet() state of a node has no effect on whether a node will be written out for a null value - a set is always performed unless the isSetPerformedForAbsentNode flag is set to false for absent nodes.
    Unmarshal:

    The following instance field can be set on top of the two from AbstractNullPolicy:

    • isSetPerformedForAbsentNode:

     Usage:

    Unmarshal null direct element xsi:nil node:

    Code Sample
    XMLDescriptor aDescriptor = new XMLDescriptor();
    aDescriptor.setJavaClass(Employee.class);
    aDescriptor.setDefaultRootElement("employee");
    XMLDirectMapping firstNameMapping = new XMLDirectMapping();
    firstNameMapping.setAttributeName("firstname");
    firstNameMapping.setXPath("first-name/text()");
    AbstractNullPolicy aNullPolicy = new NullPolicy();
    aDescriptor.addMapping(firstNameMapping);
    aNullPolicy.setSetPerformedForAbsentNode(false); // no effect
    aNullPolicy.setNullRepresentedByEmptyNodeNode(false); // default or no effect
    aNullPolicy.setNullRepresentedByXsiNil(false); // default or no effect

    Input XML
    <employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <firstname xsi:nil=true/>
    </employee>

    Output Object State
    anEmployee.getFirstname() = null
    anEmployee.isSet(firstname) = true

    Marshal null composite object (isSet=true) as empty node: .

    Code Sample
    XMLDescriptor aDescriptor = new XMLDescriptor();
    aDescriptor.setJavaClass(Team.class);
    aDescriptor.setDefaultRootElement("team");
    XMLCompositeObjectMapping aManagerMapping = new XMLCompositeObjectMapping();
    aManagerMapping.setAttributeName("manager");
    aManagerMapping.setXPath("manager/text()");
    // do not modify the default NullPolicy or the 3 boolean flags
    AbstractNullPolicy aNullPolicy = afirstNameMapping.getNullPolicy();
    aDescriptor.addMapping(aManagerMapping);
    aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);

    Input Object State
    aTeam.getManager() = null
    aTeam.isSet(manager) = no effect

    Output XML
    <team xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <manager/>
    </team>

    See Also:
    NullCapableValue
    Since:
    Oracle TopLink 11g Release 1 (11.1.1)
    • Constructor Detail

      • NullPolicy

        public NullPolicy()
        Default Constructor
      • NullPolicy

        public NullPolicy​(java.lang.String anIsSetMethodName,
                          boolean bIsSetPerformedForAbsentNode,
                          boolean bIsNullRepresentedByEmptyNode,
                          boolean bIsNullRepresentedByXsiNil)
        Specific Constructor to set the Unmarshal flags
        Parameters:
        anIsSetMethodName -
        bIsSetPerformedForAbsentNode -
        bIsNullRepresentedByEmptyNode -
        bIsNullRepresentedByXsiNil -
      • NullPolicy

        public NullPolicy​(java.lang.String anIsSetMethodName,
                          boolean bIsSetPerformedForAbsentNode,
                          boolean bIsNullRepresentedByEmptyNode,
                          boolean bIsNullRepresentedByXsiNil,
                          XMLNullRepresentationType aMarshalNullRepresentation)
        Specific Constructor to set both the Marshal enum and the Unmarshal flags
        Parameters:
        anIsSetMethodName -
        bIsSetPerformedForAbsentNode -
        bIsNullRepresentedByEmptyNode -
        bIsNullRepresentedByXsiNil -
        aMarshalNullRepresentation -
    • Method Detail

      • xPathNode

        public void xPathNode​(org.eclipse.persistence.internal.oxm.XPathNode xPathNode,
                              org.eclipse.persistence.internal.oxm.NullCapableValue nullCapableValue)
        Description copied from class: AbstractNullPolicy
        INTERNAL: When using the SAX Platform this allows a NodeValue to be registered to receive events from the TreeObjectBuilder.
        Specified by:
        xPathNode in class AbstractNullPolicy
      • setSetPerformedForAbsentNode

        public void setSetPerformedForAbsentNode​(boolean performSet)
        Set the isSetPerformedForAbsentNode flag
        Parameters:
        performSet -