Class UTS46


  • public final class UTS46
    extends IDNA
    UTS #46 (IDNA2008) implementation.
    Since:
    2010jul09
    • Field Detail

      • uts46Norm2

        private static final Normalizer2 uts46Norm2
      • options

        final int options
      • severeErrors

        private static final java.util.EnumSet<IDNA.Error> severeErrors
      • asciiData

        private static final byte[] asciiData
      • L_MASK

        private static final int L_MASK
      • R_AL_MASK

        private static final int R_AL_MASK
      • L_R_AL_MASK

        private static final int L_R_AL_MASK
      • R_AL_AN_MASK

        private static final int R_AL_AN_MASK
      • EN_AN_MASK

        private static final int EN_AN_MASK
      • R_AL_EN_AN_MASK

        private static final int R_AL_EN_AN_MASK
      • L_EN_MASK

        private static final int L_EN_MASK
      • ES_CS_ET_ON_BN_NSM_MASK

        private static final int ES_CS_ET_ON_BN_NSM_MASK
      • L_EN_ES_CS_ET_ON_BN_NSM_MASK

        private static final int L_EN_ES_CS_ET_ON_BN_NSM_MASK
      • R_AL_AN_EN_ES_CS_ET_ON_BN_NSM_MASK

        private static final int R_AL_AN_EN_ES_CS_ET_ON_BN_NSM_MASK
      • U_GC_M_MASK

        private static int U_GC_M_MASK
    • Constructor Detail

      • UTS46

        public UTS46​(int options)
    • Method Detail

      • labelToASCII

        public java.lang.StringBuilder labelToASCII​(java.lang.CharSequence label,
                                                    java.lang.StringBuilder dest,
                                                    IDNA.Info info)
        Description copied from class: IDNA
        Converts a single domain name label into its ASCII form for DNS lookup. If any processing step fails, then info.hasErrors() will be true and the result might not be an ASCII string. The label might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.
        Specified by:
        labelToASCII in class IDNA
        Parameters:
        label - Input domain name label
        dest - Destination string object
        info - Output container of IDNA processing details.
        Returns:
        dest
      • labelToUnicode

        public java.lang.StringBuilder labelToUnicode​(java.lang.CharSequence label,
                                                      java.lang.StringBuilder dest,
                                                      IDNA.Info info)
        Description copied from class: IDNA
        Converts a single domain name label into its Unicode form for human-readable display. If any processing step fails, then info.hasErrors() will be true. The label might be modified according to the types of errors.
        Specified by:
        labelToUnicode in class IDNA
        Parameters:
        label - Input domain name label
        dest - Destination string object
        info - Output container of IDNA processing details.
        Returns:
        dest
      • nameToASCII

        public java.lang.StringBuilder nameToASCII​(java.lang.CharSequence name,
                                                   java.lang.StringBuilder dest,
                                                   IDNA.Info info)
        Description copied from class: IDNA
        Converts a whole domain name into its ASCII form for DNS lookup. If any processing step fails, then info.hasErrors() will be true and the result might not be an ASCII string. The domain name might be modified according to the types of errors. Labels with severe errors will be left in (or turned into) their Unicode form.
        Specified by:
        nameToASCII in class IDNA
        Parameters:
        name - Input domain name
        dest - Destination string object
        info - Output container of IDNA processing details.
        Returns:
        dest
      • nameToUnicode

        public java.lang.StringBuilder nameToUnicode​(java.lang.CharSequence name,
                                                     java.lang.StringBuilder dest,
                                                     IDNA.Info info)
        Description copied from class: IDNA
        Converts a whole domain name into its Unicode form for human-readable display. If any processing step fails, then info.hasErrors() will be true. The domain name might be modified according to the types of errors.
        Specified by:
        nameToUnicode in class IDNA
        Parameters:
        name - Input domain name
        dest - Destination string object
        info - Output container of IDNA processing details.
        Returns:
        dest
      • isASCIIString

        private static boolean isASCIIString​(java.lang.CharSequence dest)
      • process

        private java.lang.StringBuilder process​(java.lang.CharSequence src,
                                                boolean isLabel,
                                                boolean toASCII,
                                                java.lang.StringBuilder dest,
                                                IDNA.Info info)
      • processUnicode

        private java.lang.StringBuilder processUnicode​(java.lang.CharSequence src,
                                                       int labelStart,
                                                       int mappingStart,
                                                       boolean isLabel,
                                                       boolean toASCII,
                                                       java.lang.StringBuilder dest,
                                                       IDNA.Info info)
      • mapDevChars

        private int mapDevChars​(java.lang.StringBuilder dest,
                                int labelStart,
                                int mappingStart)
      • replaceLabel

        private static int replaceLabel​(java.lang.StringBuilder dest,
                                        int destLabelStart,
                                        int destLabelLength,
                                        java.lang.CharSequence label,
                                        int labelLength)
      • processLabel

        private int processLabel​(java.lang.StringBuilder dest,
                                 int labelStart,
                                 int labelLength,
                                 boolean toASCII,
                                 IDNA.Info info)
      • startsWithXNDashDash

        private static boolean startsWithXNDashDash​(java.lang.CharSequence s)
      • markBadACELabel

        private int markBadACELabel​(java.lang.StringBuilder dest,
                                    int labelStart,
                                    int labelLength,
                                    boolean toASCII,
                                    IDNA.Info info)
      • checkLabelBiDi

        private void checkLabelBiDi​(java.lang.CharSequence label,
                                    int labelStart,
                                    int labelLength,
                                    IDNA.Info info)
      • isASCIIOkBiDi

        private static boolean isASCIIOkBiDi​(java.lang.CharSequence s,
                                             int length)
      • isLabelOkContextJ

        private boolean isLabelOkContextJ​(java.lang.CharSequence label,
                                          int labelStart,
                                          int labelLength)
      • checkLabelContextO

        private void checkLabelContextO​(java.lang.CharSequence label,
                                        int labelStart,
                                        int labelLength,
                                        IDNA.Info info)
      • U_MASK

        private static int U_MASK​(int x)
      • U_GET_GC_MASK

        private static int U_GET_GC_MASK​(int c)