Interface NameCoder

  • All Known Implementing Classes:
    NameCoderWrapper, NoNameCoder, StaticNameCoder, XmlFriendlyNameCoder, XmlFriendlyReplacer, XStream11NameCoder, XStream11XmlFriendlyReplacer

    public interface NameCoder
    Coder between names in the object graph and names of a target format.

    The names form the object graph are typically names generated from Java identifiers (Java types or field members), but some names may also contain a minus sign. However, the original name might have already been aliased, so a wider range of characters can occur.

    The target names should satisfy the syntax of the target format. Transforming Java objects to XML this affects names that contain or even start with a dollar sign. Such names violate the XML specification.

    By default all names from the object graph are used as node names in the target format. Meta-data that is necessary to unmarshal the object again is typically written as attribute. Since such attributes might be represented differently in the target format, the NameCoder distinguishes between the names used for meta-data elements and the ones for the object data. The names in the target format might even have to follow a different syntax. Remember, that XStream can be easily configured to write also object data as attributes.

    Note that the instance of a NameCoder should be either thread-safe or implement Cloneable.

    Since:
    1.4
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.String decodeAttribute​(java.lang.String attributeName)
      Decode an attribute name to an object name.
      java.lang.String decodeNode​(java.lang.String nodeName)
      Decode a node name to an object name.
      java.lang.String encodeAttribute​(java.lang.String name)
      Encode a meta-data name for an attribute in the target format.
      java.lang.String encodeNode​(java.lang.String name)
      Encode an object name for a node in the target format.
    • Method Detail

      • encodeNode

        java.lang.String encodeNode​(java.lang.String name)
        Encode an object name for a node in the target format.
        Parameters:
        name - the name of the object data
        Returns:
        the node name in the target format
        Since:
        1.4
      • encodeAttribute

        java.lang.String encodeAttribute​(java.lang.String name)
        Encode a meta-data name for an attribute in the target format.
        Parameters:
        name - the name of the meta-data
        Returns:
        the attribute name in the target format
        Since:
        1.4
      • decodeNode

        java.lang.String decodeNode​(java.lang.String nodeName)
        Decode a node name to an object name.
        Parameters:
        nodeName - the name of the node
        Returns:
        the name of the object
        Since:
        1.4
      • decodeAttribute

        java.lang.String decodeAttribute​(java.lang.String attributeName)
        Decode an attribute name to an object name.
        Parameters:
        attributeName - the name of the attribute
        Returns:
        the name of the meta-data
        Since:
        1.4