Class SerializationContext

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static org.apache.commons.logging.Log log  
      protected boolean startOfDocument
      The flag whether the XML decl should be written
    • Constructor Summary

      Constructors 
      Constructor Description
      SerializationContext​(java.io.Writer writer)
      Construct SerializationContext with associated writer
      SerializationContext​(java.io.Writer writer, MessageContext msgContext)
      Construct SerializationContext with associated writer and MessageContext
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.lang.String attributeQName2String​(QName qName)
      Convert attribute QName to a string of the form : There are slightly different rules for attributes: - There is no default namespace - any attribute in a namespace must have a prefix
      void endElement()
      Writes the end element tag for the open element.
      Message getCurrentMessage()
      Return the current message
      QName getCurrentXMLType()
      Get the currently prefered xmlType
      boolean getDoMultiRefs()
      Are we doing multirefs?
      XMLEncoder getEncoder()  
      java.lang.String getEncoding()
      get the encoding for the serialization
      java.lang.String getEncodingStyle()
      Returns this context's encoding style.
      QName getItemQName()  
      QName getItemType()  
      MessageContext getMessageContext()
      Get the MessageContext we're operating with
      java.lang.String getPrefixForURI​(java.lang.String uri)
      Get a prefix for a namespace URI.
      java.lang.String getPrefixForURI​(java.lang.String uri, java.lang.String defaultPrefix)
      Get a prefix for the given namespace URI.
      java.lang.String getPrefixForURI​(java.lang.String uri, java.lang.String defaultPrefix, boolean attribute)
      Get a prefix for the given namespace URI.
      boolean getPretty()
      Get whether the serialization should be pretty printed.
      QName getQNameForClass​(java.lang.Class cls)
      Get the QName associated with the specified class.
      Serializer getSerializerForJavaType​(java.lang.Class javaType)
      Convenience method to get the Serializer for a specific java type
      TypeMapping getTypeMapping()
      Get the TypeMapping we're using.
      TypeMappingRegistry getTypeMappingRegistry()
      Get the TypeMappingRegistry we're using.
      java.lang.String getValueAsString​(java.lang.Object value, QName xmlType, java.lang.Class javaClass)  
      boolean isEncoded()
      Returns whether this context should be encoded or not.
      boolean isPrimitive​(java.lang.Object value)
      Indicates whether the object should be interpretted as a primitive for the purposes of multi-ref processing.
      void outputMultiRefs()
      The serialize method uses hrefs to reference all non-primitive values.
      java.lang.String qName2String​(QName qName)  
      java.lang.String qName2String​(QName qName, boolean writeNS)
      Convert QName to a string of the form :
      void registerPrefixForURI​(java.lang.String prefix, java.lang.String uri)
      Register prefix for the indicated uri
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value)
      Serialize the indicated value as an element with the name indicated by elemQName.
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value, QName xmlType)
      Deprecated.
      use serialize(QName, Attributes, Object, QName, Class) instead
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value, QName xmlType, boolean sendNull, java.lang.Boolean sendType)
      Deprecated.
      use serialize(QName, Attributes, Object, QName, Boolean, Boolean) instead.
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value, QName xmlType, java.lang.Boolean sendNull, java.lang.Boolean sendType)
      Serialize the indicated value as an element with the name indicated by elemQName.
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value, QName xmlType, java.lang.Class javaType)
      Serialize the indicated value as an element with the name indicated by elemQName.
      void serialize​(QName elemQName, org.xml.sax.Attributes attributes, java.lang.Object value, QName xmlType, java.lang.Class javaClass, java.lang.Boolean sendNull, java.lang.Boolean sendType)
      Serialize the indicated value as an element with the name indicated by elemQName.
      void setDoMultiRefs​(boolean shouldDo)
      Set whether we are doing multirefs
      void setEncoding​(java.lang.String encoding)
      set the encoding for the serialization
      void setItemQName​(QName itemQName)  
      void setItemType​(QName itemType)  
      void setPretty​(boolean pretty)
      Indicate whether the serialization should be pretty printed.
      void setSendDecl​(boolean sendDecl)
      Set whether or not we should write XML declarations.
      org.xml.sax.Attributes setTypeAttribute​(org.xml.sax.Attributes attributes, QName type)
      Obtains the type attribute that should be serialized and returns the new list of Attributes
      void setWriteXMLType​(QName type)  
      boolean shouldSendXSIType()
      Get whether or not to write xsi:type attributes.
      void startElement​(QName qName, org.xml.sax.Attributes attributes)
      Writes (using the Writer) the start tag for element QName along with the indicated attributes and namespace mappings.
      void writeChars​(char[] p1, int p2, int p3)
      Convenience operation to write out (to Writer) the characters in p1 starting at index p2 for length p3.
      void writeDOMElement​(org.w3c.dom.Element el)
      Output a DOM representation to a SerializationContext
      void writeSafeString​(java.lang.String string)
      Convenience operation to write out (to Writer) the String properly encoded with xml entities (like &)
      void writeString​(java.lang.String string)
      Convenience operation to write out (to Writer) the String
      void writeXMLDeclaration()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • log

        protected static org.apache.commons.logging.Log log
      • startOfDocument

        protected boolean startOfDocument
        The flag whether the XML decl should be written
    • Constructor Detail

      • SerializationContext

        public SerializationContext​(java.io.Writer writer)
        Construct SerializationContext with associated writer
        Parameters:
        writer - java.io.Writer
      • SerializationContext

        public SerializationContext​(java.io.Writer writer,
                                    MessageContext msgContext)
        Construct SerializationContext with associated writer and MessageContext
        Parameters:
        writer - java.io.Writer
        msgContext - is the MessageContext
    • Method Detail

      • getPretty

        public boolean getPretty()
        Get whether the serialization should be pretty printed.
        Returns:
        true/false
      • setPretty

        public void setPretty​(boolean pretty)
        Indicate whether the serialization should be pretty printed.
        Parameters:
        pretty - true/false
      • getDoMultiRefs

        public boolean getDoMultiRefs()
        Are we doing multirefs?
        Returns:
        true or false
      • setDoMultiRefs

        public void setDoMultiRefs​(boolean shouldDo)
        Set whether we are doing multirefs
      • setSendDecl

        public void setSendDecl​(boolean sendDecl)
        Set whether or not we should write XML declarations.
        Parameters:
        sendDecl - true/false
      • shouldSendXSIType

        public boolean shouldSendXSIType()
        Get whether or not to write xsi:type attributes.
        Returns:
        true/false
      • getTypeMapping

        public TypeMapping getTypeMapping()
        Get the TypeMapping we're using.
        Returns:
        TypeMapping or null
      • getTypeMappingRegistry

        public TypeMappingRegistry getTypeMappingRegistry()
        Get the TypeMappingRegistry we're using.
        Returns:
        TypeMapping or null
      • getPrefixForURI

        public java.lang.String getPrefixForURI​(java.lang.String uri)
        Get a prefix for a namespace URI. This method will ALWAYS return a valid prefix - if the given URI is already mapped in this serialization, we return the previous prefix. If it is not mapped, we will add a new mapping and return a generated prefix of the form "ns".
        Parameters:
        uri - is the namespace uri
        Returns:
        prefix
      • getPrefixForURI

        public java.lang.String getPrefixForURI​(java.lang.String uri,
                                                java.lang.String defaultPrefix)
        Get a prefix for the given namespace URI. If one has already been defined in this serialization, use that. Otherwise, map the passed default prefix to the URI, and return that. If a null default prefix is passed, use one of the form "ns"
      • getPrefixForURI

        public java.lang.String getPrefixForURI​(java.lang.String uri,
                                                java.lang.String defaultPrefix,
                                                boolean attribute)
        Get a prefix for the given namespace URI. If one has already been defined in this serialization, use that. Otherwise, map the passed default prefix to the URI, and return that. If a null default prefix is passed, use one of the form "ns"
      • registerPrefixForURI

        public void registerPrefixForURI​(java.lang.String prefix,
                                         java.lang.String uri)
        Register prefix for the indicated uri
        Parameters:
        prefix -
        uri - is the namespace uri
      • getCurrentMessage

        public Message getCurrentMessage()
        Return the current message
      • getMessageContext

        public MessageContext getMessageContext()
        Get the MessageContext we're operating with
      • getEncodingStyle

        public java.lang.String getEncodingStyle()
        Returns this context's encoding style. If we've got a message context then we'll get the style from that; otherwise we'll return a default.
        Returns:
        a String value
      • isEncoded

        public boolean isEncoded()
        Returns whether this context should be encoded or not.
        Returns:
        a boolean value
      • qName2String

        public java.lang.String qName2String​(QName qName,
                                             boolean writeNS)
        Convert QName to a string of the form :
        Parameters:
        qName -
        Returns:
        prefixed qname representation for serialization.
      • qName2String

        public java.lang.String qName2String​(QName qName)
      • attributeQName2String

        public java.lang.String attributeQName2String​(QName qName)
        Convert attribute QName to a string of the form : There are slightly different rules for attributes: - There is no default namespace - any attribute in a namespace must have a prefix
        Parameters:
        qName - QName
        Returns:
        prefixed qname representation for serialization.
      • getQNameForClass

        public QName getQNameForClass​(java.lang.Class cls)
        Get the QName associated with the specified class.
        Parameters:
        cls - Class of an object requiring serialization.
        Returns:
        appropriate QName associated with the class.
      • isPrimitive

        public boolean isPrimitive​(java.lang.Object value)
        Indicates whether the object should be interpretted as a primitive for the purposes of multi-ref processing. A primitive value is serialized directly instead of using id/href pairs. Thus primitive serialization/deserialization is slightly faster.
        Parameters:
        value - to be serialized
        Returns:
        true/false
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value)
                       throws java.io.IOException
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive, the javaType is the actual unwrapped object type. xsi:type is set by using the javaType to find an appopriate xmlType from the TypeMappingRegistry. Null values and the xsi:type flag will be sent or not depending on previous configuration of this SerializationContext.
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value,
                              QName xmlType)
                       throws java.io.IOException
        Deprecated.
        use serialize(QName, Attributes, Object, QName, Class) instead
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive, the javaType is the actual unwrapped object type. The xmlType is the QName of the type that is used to set xsi:type. If not specified, xsi:type is set by using the javaType to find an appopriate xmlType from the TypeMappingRegistry. Null values and the xsi:type flag will be sent or not depending on previous configuration of this SerializationContext.
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        xmlType - is the qname of the type or null.
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value,
                              QName xmlType,
                              java.lang.Class javaType)
                       throws java.io.IOException
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive, the javaType is the actual unwrapped object type. The xmlType is the QName of the type that is used to set xsi:type. If not specified, xsi:type is set by using the javaType to find an appopriate xmlType from the TypeMappingRegistry. Null values and the xsi:type flag will be sent or not depending on previous configuration of this SerializationContext.
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        xmlType - is the qname of the type or null.
        javaType - is the java type of the value
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value,
                              QName xmlType,
                              boolean sendNull,
                              java.lang.Boolean sendType)
                       throws java.io.IOException
        Deprecated.
        use serialize(QName, Attributes, Object, QName, Boolean, Boolean) instead.
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive. The xmlType (if specified) is the QName of the type that is used to set xsi:type. The sendNull flag indicates whether null values should be sent over the wire (default is to send such values with xsi:nil="true"). The sendType flag indicates whether the xsi:type flag should be sent (default is true).
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        xmlType - is the qname of the type or null.
        sendNull - determines whether to send null values.
        sendType - determines whether to set xsi:type attribute.
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value,
                              QName xmlType,
                              java.lang.Boolean sendNull,
                              java.lang.Boolean sendType)
                       throws java.io.IOException
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive. The xmlType (if specified) is the QName of the type that is used to set xsi:type. The sendNull flag indicates whether to end an element with an xsi:nil="true" attribute for null variables (if Boolean.TRUE), or nothing (if Boolean.FALSE). The sendType flag indicates whether the xsi:type flag should be sent (default is true).
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        xmlType - is the qname of the type or null.
        sendNull - determines whether to send null values.
        sendType - determines whether to set xsi:type attribute.
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(QName elemQName,
                              org.xml.sax.Attributes attributes,
                              java.lang.Object value,
                              QName xmlType,
                              java.lang.Class javaClass,
                              java.lang.Boolean sendNull,
                              java.lang.Boolean sendType)
                       throws java.io.IOException
        Serialize the indicated value as an element with the name indicated by elemQName. The attributes are additional attribute to be serialized on the element. The value is the object being serialized. (It may be serialized directly or serialized as an mult-ref'd item) The value is an Object, which may be a wrapped primitive. The xmlType (if specified) is the QName of the type that is used to set xsi:type. The sendNull flag indicates whether to end an element with an xsi:nil="true" attribute for null variables (if Boolean.TRUE), or nothing (if Boolean.FALSE). The sendType flag indicates whether the xsi:type flag should be sent (default is true).
        Parameters:
        elemQName - is the QName of the element
        attributes - are additional attributes
        value - is the object to serialize
        xmlType - is the qname of the type or null.
        javaType - is the java type of the value
        sendNull - determines whether to send null values.
        sendType - determines whether to set xsi:type attribute.
        Throws:
        java.io.IOException
      • outputMultiRefs

        public void outputMultiRefs()
                             throws java.io.IOException
        The serialize method uses hrefs to reference all non-primitive values. These values are stored and serialized by calling outputMultiRefs after the serialize method completes.
        Throws:
        java.io.IOException
      • writeXMLDeclaration

        public void writeXMLDeclaration()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • startElement

        public void startElement​(QName qName,
                                 org.xml.sax.Attributes attributes)
                          throws java.io.IOException
        Writes (using the Writer) the start tag for element QName along with the indicated attributes and namespace mappings.
        Parameters:
        qName - is the name of the element
        attributes - are the attributes to write
        Throws:
        java.io.IOException
      • endElement

        public void endElement()
                        throws java.io.IOException
        Writes the end element tag for the open element.
        Throws:
        java.io.IOException
      • writeChars

        public void writeChars​(char[] p1,
                               int p2,
                               int p3)
                        throws java.io.IOException
        Convenience operation to write out (to Writer) the characters in p1 starting at index p2 for length p3.
        Parameters:
        p1 - character array to write
        p2 - starting index in array
        p3 - length to write
        Throws:
        java.io.IOException
      • writeString

        public void writeString​(java.lang.String string)
                         throws java.io.IOException
        Convenience operation to write out (to Writer) the String
        Parameters:
        string - is the String to write.
        Throws:
        java.io.IOException
      • writeSafeString

        public void writeSafeString​(java.lang.String string)
                             throws java.io.IOException
        Convenience operation to write out (to Writer) the String properly encoded with xml entities (like &)
        Parameters:
        string - is the String to write.
        Throws:
        java.io.IOException
      • writeDOMElement

        public void writeDOMElement​(org.w3c.dom.Element el)
                             throws java.io.IOException
        Output a DOM representation to a SerializationContext
        Parameters:
        el - is a DOM Element
        Throws:
        java.io.IOException
      • getSerializerForJavaType

        public final Serializer getSerializerForJavaType​(java.lang.Class javaType)
        Convenience method to get the Serializer for a specific java type
        Parameters:
        javaType - is Class for a type to serialize
        Returns:
        Serializer
      • setTypeAttribute

        public org.xml.sax.Attributes setTypeAttribute​(org.xml.sax.Attributes attributes,
                                                       QName type)
        Obtains the type attribute that should be serialized and returns the new list of Attributes
        Parameters:
        attributes - of the qname
        type - is the qname of the type
        Returns:
        new list of Attributes
      • getCurrentXMLType

        public QName getCurrentXMLType()
        Get the currently prefered xmlType
        Returns:
        QName of xmlType or null
      • getValueAsString

        public java.lang.String getValueAsString​(java.lang.Object value,
                                                 QName xmlType,
                                                 java.lang.Class javaClass)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • setWriteXMLType

        public void setWriteXMLType​(QName type)
      • getEncoding

        public java.lang.String getEncoding()
        get the encoding for the serialization
        Returns:
      • setEncoding

        public void setEncoding​(java.lang.String encoding)
        set the encoding for the serialization
      • getItemQName

        public QName getItemQName()
      • setItemQName

        public void setItemQName​(QName itemQName)
      • getItemType

        public QName getItemType()
      • setItemType

        public void setItemType​(QName itemType)