Class ImportControlLoader

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

    public final class ImportControlLoader
    extends XmlLoader
    Responsible for loading the contents of an import control configuration file.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ImportControlLoader()
      Constructs an instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static boolean containsRegexAttribute​(org.xml.sax.Attributes attributes)
      Check if the given attributes contain the regex attribute.
      private static AbstractImportRule createImportRule​(java.lang.String qName, org.xml.sax.Attributes attributes)
      Constructs an instance of an import rule based on the given name and attributes.
      void endElement​(java.lang.String namespaceUri, java.lang.String localName, java.lang.String qName)  
      private PkgImportControl getRoot()
      Returns root PkgImportControl.
      private static MismatchStrategy getStrategyForImportControl​(org.xml.sax.Attributes attributes)
      Utility to get a strategyOnMismatch property for "import-control" tag.
      private static MismatchStrategy getStrategyForSubpackage​(org.xml.sax.Attributes attributes)
      Utility to get a strategyOnMismatch property for "subpackage" tag.
      static PkgImportControl load​(java.net.URI uri)
      Loads the import control file from a file.
      private static PkgImportControl load​(org.xml.sax.InputSource source, java.net.URI uri)
      Loads the import control file from a InputSource.
      private static PkgImportControl loadUri​(java.net.URI uri)
      Loads the import control file from a URI.
      private static java.lang.String safeGet​(org.xml.sax.Attributes attributes, java.lang.String name)
      Utility to safely get an attribute.
      void startElement​(java.lang.String namespaceUri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)  
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        characters, endDocument, endPrefixMapping, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DTD_PUBLIC_ID_1_0

        private static final java.lang.String DTD_PUBLIC_ID_1_0
        The public ID for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_CS_ID_1_0

        private static final java.lang.String DTD_PUBLIC_CS_ID_1_0
        The new public ID for version 1_0 of the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_ID_1_1

        private static final java.lang.String DTD_PUBLIC_ID_1_1
        The public ID for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_CS_ID_1_1

        private static final java.lang.String DTD_PUBLIC_CS_ID_1_1
        The new public ID for version 1_1 of the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_ID_1_2

        private static final java.lang.String DTD_PUBLIC_ID_1_2
        The public ID for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_CS_ID_1_2

        private static final java.lang.String DTD_PUBLIC_CS_ID_1_2
        The new public ID for version 1_2 of the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_ID_1_3

        private static final java.lang.String DTD_PUBLIC_ID_1_3
        The public ID for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_CS_ID_1_3

        private static final java.lang.String DTD_PUBLIC_CS_ID_1_3
        The new public ID for version 1_3 of the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_ID_1_4

        private static final java.lang.String DTD_PUBLIC_ID_1_4
        The public ID for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_PUBLIC_CS_ID_1_4

        private static final java.lang.String DTD_PUBLIC_CS_ID_1_4
        The new public ID for version 1_4 of the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_NAME_1_0

        private static final java.lang.String DTD_RESOURCE_NAME_1_0
        The resource for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_NAME_1_1

        private static final java.lang.String DTD_RESOURCE_NAME_1_1
        The resource for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_NAME_1_2

        private static final java.lang.String DTD_RESOURCE_NAME_1_2
        The resource for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_NAME_1_3

        private static final java.lang.String DTD_RESOURCE_NAME_1_3
        The resource for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_NAME_1_4

        private static final java.lang.String DTD_RESOURCE_NAME_1_4
        The resource for the configuration dtd.
        See Also:
        Constant Field Values
      • DTD_RESOURCE_BY_ID

        private static final java.util.Map<java.lang.String,​java.lang.String> DTD_RESOURCE_BY_ID
        The map to lookup the resource name by the id.
      • PKG_ATTRIBUTE_NAME

        private static final java.lang.String PKG_ATTRIBUTE_NAME
        Name for attribute 'pkg'.
        See Also:
        Constant Field Values
      • NAME_ATTRIBUTE_NAME

        private static final java.lang.String NAME_ATTRIBUTE_NAME
        Name for attribute 'name'.
        See Also:
        Constant Field Values
      • STRATEGY_ON_MISMATCH_ATTRIBUTE_NAME

        private static final java.lang.String STRATEGY_ON_MISMATCH_ATTRIBUTE_NAME
        Name for attribute 'strategyOnMismatch'.
        See Also:
        Constant Field Values
      • STRATEGY_ON_MISMATCH_ALLOWED_VALUE

        private static final java.lang.String STRATEGY_ON_MISMATCH_ALLOWED_VALUE
        Value "allowed" for attribute 'strategyOnMismatch'.
        See Also:
        Constant Field Values
      • STRATEGY_ON_MISMATCH_DISALLOWED_VALUE

        private static final java.lang.String STRATEGY_ON_MISMATCH_DISALLOWED_VALUE
        Value "disallowed" for attribute 'strategyOnMismatch'.
        See Also:
        Constant Field Values
      • SUBPACKAGE_ELEMENT_NAME

        private static final java.lang.String SUBPACKAGE_ELEMENT_NAME
        Qualified name for element 'subpackage'.
        See Also:
        Constant Field Values
      • FILE_ELEMENT_NAME

        private static final java.lang.String FILE_ELEMENT_NAME
        Qualified name for element 'file'.
        See Also:
        Constant Field Values
      • ALLOW_ELEMENT_NAME

        private static final java.lang.String ALLOW_ELEMENT_NAME
        Qualified name for element 'allow'.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ImportControlLoader

        private ImportControlLoader()
                             throws javax.xml.parsers.ParserConfigurationException,
                                    org.xml.sax.SAXException
        Constructs an instance.
        Throws:
        javax.xml.parsers.ParserConfigurationException - if an error occurs.
        org.xml.sax.SAXException - if an error occurs.
    • Method Detail

      • startElement

        public void startElement​(java.lang.String namespaceUri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attributes)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • createImportRule

        private static AbstractImportRule createImportRule​(java.lang.String qName,
                                                           org.xml.sax.Attributes attributes)
                                                    throws org.xml.sax.SAXException
        Constructs an instance of an import rule based on the given name and attributes.
        Parameters:
        qName - The qualified name.
        attributes - The attributes attached to the element.
        Returns:
        The created import rule.
        Throws:
        org.xml.sax.SAXException - if an error occurs.
      • containsRegexAttribute

        private static boolean containsRegexAttribute​(org.xml.sax.Attributes attributes)
        Check if the given attributes contain the regex attribute.
        Parameters:
        attributes - the attributes.
        Returns:
        if the regex attribute is contained.
      • endElement

        public void endElement​(java.lang.String namespaceUri,
                               java.lang.String localName,
                               java.lang.String qName)
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
      • load

        private static PkgImportControl load​(org.xml.sax.InputSource source,
                                             java.net.URI uri)
                                      throws CheckstyleException
        Loads the import control file from a InputSource.
        Parameters:
        source - the source to load from.
        uri - uri of the source being loaded.
        Returns:
        the root PkgImportControl object.
        Throws:
        CheckstyleException - if an error occurs.
      • getStrategyForImportControl

        private static MismatchStrategy getStrategyForImportControl​(org.xml.sax.Attributes attributes)
        Utility to get a strategyOnMismatch property for "import-control" tag.
        Parameters:
        attributes - collect to get attribute from.
        Returns:
        the value of the attribute.
      • getStrategyForSubpackage

        private static MismatchStrategy getStrategyForSubpackage​(org.xml.sax.Attributes attributes)
        Utility to get a strategyOnMismatch property for "subpackage" tag.
        Parameters:
        attributes - collect to get attribute from.
        Returns:
        the value of the attribute.
      • safeGet

        private static java.lang.String safeGet​(org.xml.sax.Attributes attributes,
                                                java.lang.String name)
                                         throws org.xml.sax.SAXException
        Utility to safely get an attribute. If it does not exist an exception is thrown.
        Parameters:
        attributes - collect to get attribute from.
        name - name of the attribute to get.
        Returns:
        the value of the attribute.
        Throws:
        org.xml.sax.SAXException - if the attribute does not exist.