Class CompletionXMLParser

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public class CompletionXMLParser
    extends org.xml.sax.helpers.DefaultHandler
    Parser for an XML file describing a procedural language such as C. XML files will be validated against the CompletionXml.dtd DTD found in this package.
    Version:
    1.0
    • Field Detail

      • completions

        private java.util.List<Completion> completions
        The completions found after parsing the XML.
      • provider

        private CompletionProvider provider
        The provider we're getting completions for.
      • completionCL

        private java.lang.ClassLoader completionCL
        The completion provider to use when loading classes, such as custom FunctionCompletions.
      • name

        private java.lang.String name
      • type

        private java.lang.String type
      • returnType

        private java.lang.String returnType
      • returnValDesc

        private java.lang.StringBuilder returnValDesc
      • desc

        private java.lang.StringBuilder desc
      • paramName

        private java.lang.String paramName
      • paramType

        private java.lang.String paramType
      • endParam

        private boolean endParam
      • paramDesc

        private java.lang.StringBuilder paramDesc
      • definedIn

        private java.lang.String definedIn
      • doingKeywords

        private boolean doingKeywords
      • inKeyword

        private boolean inKeyword
      • gettingReturnValDesc

        private boolean gettingReturnValDesc
      • gettingDesc

        private boolean gettingDesc
      • gettingParams

        private boolean gettingParams
      • inParam

        private boolean inParam
      • gettingParamDesc

        private boolean gettingParamDesc
      • inCompletionTypes

        private boolean inCompletionTypes
      • paramStartChar

        private char paramStartChar
      • paramEndChar

        private char paramEndChar
      • paramSeparator

        private java.lang.String paramSeparator
      • funcCompletionType

        private java.lang.String funcCompletionType
        If specified in the XML, this class will be used instead of FunctionCompletion when appropriate. This class should extend FunctionCompletion, or stuff will break.
      • defaultCompletionClassLoader

        private static java.lang.ClassLoader defaultCompletionClassLoader
        The class loader to use to load custom completion classes, such as the one defined by funcCompletionType. If this is null, then a default class loader is used. This field will usually be null.
    • Constructor Detail

      • CompletionXMLParser

        public CompletionXMLParser​(CompletionProvider provider,
                                   java.lang.ClassLoader cl)
        Constructor.
        Parameters:
        provider - The provider to get completions for.
        cl - The class loader to use, if necessary, when loading classes from the XML (custom FunctionCompletions, for example). This may be null if the default is to be used, or if the XML does not define specific classes for completion types.
        See Also:
        reset(CompletionProvider)
    • Method Detail

      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
        Called when character data inside an element is found.
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
        Called when an element is closed.
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
      • error

        public void error​(org.xml.sax.SAXParseException e)
                   throws org.xml.sax.SAXException
        Specified by:
        error in interface org.xml.sax.ErrorHandler
        Overrides:
        error in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • getCompletions

        public java.util.List<Completion> getCompletions()
        Returns the completions found after parsing the XML.
        Returns:
        The completions.
      • getParamEndChar

        public char getParamEndChar()
        Returns the parameter end character specified.
        Returns:
        The character, or 0 if none was specified.
      • getParamSeparator

        public java.lang.String getParamSeparator()
        Returns the parameter end string specified.
        Returns:
        The string, or null if none was specified.
      • getParamStartChar

        public char getParamStartChar()
        Returns the parameter start character specified.
        Returns:
        The character, or 0 if none was specified.
      • getSingleChar

        private static char getSingleChar​(java.lang.String str)
      • reset

        public void reset​(CompletionProvider provider)
        Resets this parser to grab more completions.
        Parameters:
        provider - The new provider to get completions for.
      • resolveEntity

        public org.xml.sax.InputSource resolveEntity​(java.lang.String publicID,
                                                     java.lang.String systemID)
        Specified by:
        resolveEntity in interface org.xml.sax.EntityResolver
        Overrides:
        resolveEntity in class org.xml.sax.helpers.DefaultHandler
      • setDefaultCompletionClassLoader

        public static void setDefaultCompletionClassLoader​(java.lang.ClassLoader cl)
        Sets the class loader to use when loading custom classes to use for various Completion types, such as FunctionCompletions, from XML.

        Users should very rarely have a need to use this method.

        Parameters:
        cl - The class loader to use. If this is null, then a default is used.
      • startElement

        public void startElement​(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attrs)
        Called when an element starts.
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
      • warning

        public void warning​(org.xml.sax.SAXParseException e)
                     throws org.xml.sax.SAXException
        Specified by:
        warning in interface org.xml.sax.ErrorHandler
        Overrides:
        warning in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException