Package com.dd.plist

Class ASCIIPropertyListParser

    • Constructor Detail

      • ASCIIPropertyListParser

        private ASCIIPropertyListParser​(byte[] propertyListContent,
                                        java.lang.String encoding)
                                 throws java.io.UnsupportedEncodingException
        Creates a new parser for the given property list content.
        Parameters:
        propertyListContent - The content of the property list that is to be parsed.
        encoding - The name of a supported charset to decode the property list.
        Throws:
        java.io.UnsupportedEncodingException - If no support for the named charset is available in this instance of the Java virtual machine.
      • ASCIIPropertyListParser

        private ASCIIPropertyListParser​(char[] propertyListContent)
        Creates a new parser for the given property list content.
        Parameters:
        propertyListContent - The content of the property list that is to be parsed.
    • Method Detail

      • parse

        public static NSObject parse​(java.io.File f)
                              throws java.io.IOException,
                                     java.text.ParseException
        Parses an ASCII property list file.
        Parameters:
        f - The ASCII property list file.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
      • parse

        public static NSObject parse​(java.io.File f,
                                     java.lang.String encoding)
                              throws java.io.IOException,
                                     java.text.ParseException
        Parses an ASCII property list file.
        Parameters:
        f - The ASCII property list file.
        encoding - The name of a supported charset to decode the property list.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
        java.io.UnsupportedEncodingException - If no support for the named charset is available in this instance of the Java virtual machine.
      • parse

        public static NSObject parse​(java.nio.file.Path path,
                                     java.lang.String encoding)
                              throws java.io.IOException,
                                     java.text.ParseException
        Parses an ASCII property list file.
        Parameters:
        path - The path to the ASCII property list file.
        encoding - The name of a supported charset to decode the property list.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
        java.io.UnsupportedEncodingException - If no support for the named charset is available in this instance of the Java virtual machine.
      • parse

        public static NSObject parse​(java.nio.file.Path path)
                              throws java.io.IOException,
                                     java.text.ParseException
        Parses an ASCII property list file.
        Parameters:
        path - The path to the ASCII property list file.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
      • parse

        public static NSObject parse​(java.io.InputStream in)
                              throws java.text.ParseException,
                                     java.io.IOException
        Parses an ASCII property list from an input stream. This method does not close the specified input stream.
        Parameters:
        in - The input stream that provides the property list's data.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
      • parse

        public static NSObject parse​(java.io.InputStream in,
                                     java.lang.String encoding)
                              throws java.text.ParseException,
                                     java.io.IOException
        Parses an ASCII property list from an input stream. This method does not close the specified input stream.
        Parameters:
        in - The input stream that points to the property list's data.
        encoding - The name of a supported charset to decode the property list.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input stream.
        java.io.UnsupportedEncodingException - If no support for the named charset is available in this instance of the Java virtual machine.
      • parse

        public static NSObject parse​(java.io.Reader reader)
                              throws java.text.ParseException,
                                     java.io.IOException
        Parses an ASCII property list from a Reader. This method does not close the specified reader.
        Parameters:
        reader - The reader that provides the property list's data.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.IOException - If an error occurs while reading from the input reader.
      • parse

        public static NSObject parse​(java.lang.String plistData)
                              throws java.text.ParseException
        Parses an ASCII property list from a String
        Parameters:
        plistData - A string containing the property list's data.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
      • parse

        public static NSObject parse​(byte[] bytes)
                              throws java.text.ParseException
        Parses an ASCII property list from a byte array.
        Parameters:
        bytes - The ASCII property list data.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
      • parse

        public static NSObject parse​(byte[] bytes,
                                     java.lang.String encoding)
                              throws java.text.ParseException,
                                     java.io.UnsupportedEncodingException
        Parses an ASCII property list from a byte array.
        Parameters:
        bytes - The ASCII property list data.
        encoding - The name of a supported Charset charset to decode the property list.
        Returns:
        The root object of the property list. This is usually a NSDictionary but can also be a NSArray.
        Throws:
        java.text.ParseException - If an error occurs during parsing.
        java.io.UnsupportedEncodingException - If no support for the named charset is available in this instance of the Java virtual machine.
      • acceptSequence

        private boolean acceptSequence​(char... sequence)
        Checks whether the given sequence of symbols can be accepted.
        Parameters:
        sequence - The sequence of tokens to look for.
        Returns:
        Whether the given tokens occur at the current parsing position.
      • accept

        private boolean accept​(char... acceptableSymbols)
        Checks whether the given symbols can be accepted, that is, if one of the given symbols is found at the current parsing position.
        Parameters:
        acceptableSymbols - The symbols to check.
        Returns:
        Whether one of the symbols can be accepted or not.
      • accept

        private boolean accept​(char acceptableSymbol)
        Checks whether the given symbol can be accepted, that is, if the given symbols is found at the current parsing position.
        Parameters:
        acceptableSymbol - The symbol to check.
        Returns:
        Whether the symbol can be accepted or not.
      • expect

        private void expect​(char... expectedSymbols)
                     throws java.text.ParseException
        Expects the input to have one of the given symbols at the current parsing position.
        Parameters:
        expectedSymbols - The expected symbols.
        Throws:
        java.text.ParseException - If none of the expected symbols could be found.
      • expect

        private void expect​(char expectedSymbol)
                     throws java.text.ParseException
        Expects the input to have the given symbol at the current parsing position.
        Parameters:
        expectedSymbol - The expected symbol.
        Throws:
        java.text.ParseException - If the expected symbol could not be found.
      • read

        private void read​(char symbol)
                   throws java.text.ParseException
        Reads an expected symbol.
        Parameters:
        symbol - The symbol to read.
        Throws:
        java.text.ParseException - If the expected symbol could not be read.
      • skip

        private void skip()
        Skips the current symbol.
      • skip

        private void skip​(int numSymbols)
        Skips several symbols
        Parameters:
        numSymbols - The amount of symbols to skip.
      • skipWhitespacesAndComments

        private void skipWhitespacesAndComments()
        Skips all whitespaces and comments from the current parsing position onward.
      • readInputUntil

        private java.lang.String readInputUntil​(char... symbols)
        Reads input until one of the given symbols is found.
        Parameters:
        symbols - The symbols that can occur after the string to read.
        Returns:
        The input until one the given symbols.
      • readInputUntil

        private java.lang.String readInputUntil​(char symbol)
        Reads input until the given symbol is found.
        Parameters:
        symbol - The symbol that can occur after the string to read.
        Returns:
        The input until the given symbol.
      • parse

        public NSObject parse()
                       throws java.text.ParseException
        Parses the property list from the beginning and returns the root object of the property list.
        Returns:
        The root object of the property list. This can either be a NSDictionary or a NSArray.
        Throws:
        java.text.ParseException - If an error occurred during parsing
      • parseObject

        private NSObject parseObject()
                              throws java.text.ParseException
        Parses the NSObject found at the current position in the property list data stream.
        Returns:
        The parsed NSObject.
        Throws:
        java.text.ParseException
        See Also:
        index
      • parseArray

        private NSArray parseArray()
                            throws java.text.ParseException
        Parses an array from the current parsing position. The prerequisite for calling this method is, that an array begin token has been read.
        Returns:
        The array found at the parsing position.
        Throws:
        java.text.ParseException
      • parseDictionary

        private NSDictionary parseDictionary()
                                      throws java.text.ParseException
        Parses a dictionary from the current parsing position. The prerequisite for calling this method is, that a dictionary begin token has been read.
        Returns:
        The dictionary found at the parsing position.
        Throws:
        java.text.ParseException
      • parseData

        private NSObject parseData()
                            throws java.text.ParseException
        Parses a data object from the current parsing position. This can either be a NSData object or a GnuStep NSNumber or NSDate. The prerequisite for calling this method is, that a data begin token has been read.
        Returns:
        The data object found at the parsing position.
        Throws:
        java.text.ParseException
      • parseDateString

        private NSObject parseDateString()
        Attempts to parse a plain string as a date if possible.
        Returns:
        An NSDate if the string represents such an object. Otherwise, an NSString is returned.
      • parseString

        private java.lang.String parseString()
        Parses a plain string from the current parsing position. The string is made up of all characters to the next whitespace, delimiter token or assignment token.
        Returns:
        The string found at the current parsing position.
      • parseQuotedString

        private java.lang.String parseQuotedString()
                                            throws java.text.ParseException
        Parses a quoted string from the current parsing position. The prerequisite for calling this method is, that a quoted string begin token has been read.
        Returns:
        The quoted string found at the parsing method with all special characters unescaped.
        Throws:
        java.text.ParseException - If an error occurred during parsing.
      • parseQuotedString

        private static java.lang.String parseQuotedString​(java.lang.String s)
                                                   throws java.text.ParseException
        Parses a string according to the format specified for ASCII property lists. Such strings can contain escape sequences which are unescaped in this method.
        Parameters:
        s - The escaped string according to the ASCII property list format, without leading and trailing quotation marks.
        Returns:
        The unescaped string in UTF-8
        Throws:
        java.text.ParseException - The string contains an invalid escape sequence.
      • parseEscapedSequence

        private static char parseEscapedSequence​(java.text.StringCharacterIterator iterator)
                                          throws java.text.ParseException
        Unescapes an escaped character sequence, e.g. \\u00FC.
        Parameters:
        iterator - The string character iterator pointing to the first character after the backslash
        Returns:
        The unescaped character.
        Throws:
        java.text.ParseException - The string contains an invalid escape sequence.