Class StringCodecFactory.ISO9075Helper

  • All Implemented Interfaces:
    StringCodec
    Enclosing class:
    StringCodecFactory

    public static class StringCodecFactory.ISO9075Helper
    extends Object
    implements StringCodec
    Usage of this class discouraged. If should only be used by frameworks to initialize the StringCodecFactory instance.

    Performs encoding and decoding (the localname of) Qualified names

    Implements the encode and decode routines based on ISO 9075-14:2003.
    If a character c is not valid in the localname of a QName it is encoded in the form: '_x' + hexValueOf(c) + '_' (UTF-16)

    Qualified name: a qualified name is a combination of a namespace URI and a local part. Instances of this class are used to internally represent the names of JCR content items and other objects within a content repository.

    The prefixed JCR name format of a qualified name is specified by section 4.6 of the the JCR 1.0 specification (JSR 170) as follows:

     name                ::= simplename | prefixedname
     simplename          ::= onecharsimplename |
                             twocharsimplename |
                             threeormorecharname
     prefixedname        ::= prefix ':' localname
     localname           ::= onecharlocalname |
                             twocharlocalname |
                             threeormorecharname
     onecharsimplename   ::= (* Any Unicode character except:
                                '.', '/', ':', '[', ']', '*',
                                ''', '"', '|' or any whitespace
                                character *)
     twocharsimplename   ::= '.' onecharsimplename |
                             onecharsimplename '.' |
                             onecharsimplename onecharsimplename
     onecharlocalname    ::= nonspace
     twocharlocalname    ::= nonspace nonspace
     threeormorecharname ::= nonspace string nonspace
     prefix              ::= (* Any valid XML Name *)
     string              ::= char | string char
     char                ::= nonspace | ' '
     nonspace            ::= (* Any Unicode character except:
                                '/', ':', '[', ']', '*',
                                ''', '"', '|' or any whitespace
                                character *)
     

    In addition to the prefixed JCR name format, a qualified name can also be represented using the format "{namespaceURI}localPart".

    • Constructor Detail

      • ISO9075Helper

        public ISO9075Helper()
    • Method Detail

      • encode

        public String encode​(String plain)
        Description copied from interface: StringCodec
        Encodes a string of characters.
        Specified by:
        encode in interface StringCodec
        Parameters:
        plain - the string to encode
        Returns:
        the encoded string
      • decode

        public String decode​(String encoded)
        Description copied from interface: StringCodec
        Decodes a string of characters. Some encoding strategies are one-way, in which case the decoding might return null.
        Specified by:
        decode in interface StringCodec
        Parameters:
        encoded - the previously encoded string
        Returns:
        the decoded string or null if no decoding is possible
      • encodeColon

        public static String encodeColon​(String name)
        Parameters:
        name -
      • decodeColon

        public static String decodeColon​(String name)
        Parameters:
        name -