Class ImportControlLoader
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- com.puppycrawl.tools.checkstyle.api.AbstractLoader
-
- com.puppycrawl.tools.checkstyle.checks.imports.ImportControlLoader
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
final class ImportControlLoader extends AbstractLoader
Responsible for loading the contents of an import control configuration file.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ALLOW_ELEMENT_NAME
Qualified name for element 'allow'.private static java.lang.String
DTD_PUBLIC_ID_1_0
The public ID for the configuration dtd.private static java.lang.String
DTD_PUBLIC_ID_1_1
The public ID for the configuration dtd.private static java.lang.String
DTD_PUBLIC_ID_1_2
The public ID for the configuration dtd.private static java.lang.String
DTD_PUBLIC_ID_1_3
The public ID for the configuration dtd.private static java.util.Map<java.lang.String,java.lang.String>
DTD_RESOURCE_BY_ID
The map to lookup the resource name by the id.private static java.lang.String
DTD_RESOURCE_NAME_1_0
The resource for the configuration dtd.private static java.lang.String
DTD_RESOURCE_NAME_1_1
The resource for the configuration dtd.private static java.lang.String
DTD_RESOURCE_NAME_1_2
The resource for the configuration dtd.private static java.lang.String
DTD_RESOURCE_NAME_1_3
The resource for the configuration dtd.private static java.lang.String
PKG_ATTRIBUTE_NAME
Name for attribute 'pkg'.private java.util.Deque<ImportControl>
stack
Used to hold theImportControl
objects.private static java.lang.String
STRATEGY_ON_MISMATCH_ALLOWED_VALUE
Value "allowed" for attribute 'strategyOnMismatch'.private static java.lang.String
STRATEGY_ON_MISMATCH_ATTRIBUTE_NAME
Name for attribute 'strategyOnMismatch'.private static java.lang.String
STRATEGY_ON_MISMATCH_DISALLOWED_VALUE
Value "disallowed" for attribute 'strategyOnMismatch'.private static java.lang.String
SUBPACKAGE_ELEMENT_NAME
Qualified name for element 'subpackage'.
-
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 void
closeStream(java.io.InputStream inputStream)
This method exists only due to bug in cobertura library https://github.com/cobertura/cobertura/issues/170private static boolean
containsRegexAttribute(org.xml.sax.Attributes attributes)
Check if the given attributes contain the regex attribute.void
endElement(java.lang.String namespaceUri, java.lang.String localName, java.lang.String qName)
private ImportControl
getRoot()
Returns root ImportControl.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 ImportControl
load(java.net.URI uri)
Loads the import control file from a file.private static ImportControl
load(org.xml.sax.InputSource source, java.net.URI uri)
Loads the import control file from aInputSource
.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 com.puppycrawl.tools.checkstyle.api.AbstractLoader
error, fatalError, parseInputSource, resolveEntity
-
-
-
-
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_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_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_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_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_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
-
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
-
ALLOW_ELEMENT_NAME
private static final java.lang.String ALLOW_ELEMENT_NAME
Qualified name for element 'allow'.- See Also:
- Constant Field Values
-
stack
private final java.util.Deque<ImportControl> stack
Used to hold theImportControl
objects.
-
-
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 interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
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 interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
-
load
public static ImportControl load(java.net.URI uri) throws CheckstyleException
Loads the import control file from a file.- Parameters:
uri
- the uri of the file to load.- Returns:
- the root
ImportControl
object. - Throws:
CheckstyleException
- if an error occurs.
-
load
private static ImportControl load(org.xml.sax.InputSource source, java.net.URI uri) throws CheckstyleException
Loads the import control file from aInputSource
.- Parameters:
source
- the source to load from.uri
- uri of the source being loaded.- Returns:
- the root
ImportControl
object. - Throws:
CheckstyleException
- if an error occurs.
-
closeStream
private static void closeStream(java.io.InputStream inputStream) throws CheckstyleException
This method exists only due to bug in cobertura library https://github.com/cobertura/cobertura/issues/170- Parameters:
inputStream
- the InputStream to close- Throws:
CheckstyleException
- if an error occurs.
-
getRoot
private ImportControl getRoot()
Returns root ImportControl.- Returns:
- the root
ImportControl
object loaded.
-
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.
-
-