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.StringALLOW_ELEMENT_NAMEQualified name for element 'allow'.private static java.lang.StringDTD_PUBLIC_ID_1_0The public ID for the configuration dtd.private static java.lang.StringDTD_PUBLIC_ID_1_1The public ID for the configuration dtd.private static java.lang.StringDTD_PUBLIC_ID_1_2The public ID for the configuration dtd.private static java.lang.StringDTD_PUBLIC_ID_1_3The public ID for the configuration dtd.private static java.util.Map<java.lang.String,java.lang.String>DTD_RESOURCE_BY_IDThe map to lookup the resource name by the id.private static java.lang.StringDTD_RESOURCE_NAME_1_0The resource for the configuration dtd.private static java.lang.StringDTD_RESOURCE_NAME_1_1The resource for the configuration dtd.private static java.lang.StringDTD_RESOURCE_NAME_1_2The resource for the configuration dtd.private static java.lang.StringDTD_RESOURCE_NAME_1_3The resource for the configuration dtd.private static java.lang.StringPKG_ATTRIBUTE_NAMEName for attribute 'pkg'.private java.util.Deque<ImportControl>stackUsed to hold theImportControlobjects.private static java.lang.StringSTRATEGY_ON_MISMATCH_ALLOWED_VALUEValue "allowed" for attribute 'strategyOnMismatch'.private static java.lang.StringSTRATEGY_ON_MISMATCH_ATTRIBUTE_NAMEName for attribute 'strategyOnMismatch'.private static java.lang.StringSTRATEGY_ON_MISMATCH_DISALLOWED_VALUEValue "disallowed" for attribute 'strategyOnMismatch'.private static java.lang.StringSUBPACKAGE_ELEMENT_NAMEQualified name for element 'subpackage'.
-
Constructor Summary
Constructors Modifier Constructor Description privateImportControlLoader()Constructs an instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidcloseStream(java.io.InputStream inputStream)This method exists only due to bug in cobertura library https://github.com/cobertura/cobertura/issues/170private static booleancontainsRegexAttribute(org.xml.sax.Attributes attributes)Check if the given attributes contain the regex attribute.voidendElement(java.lang.String namespaceUri, java.lang.String localName, java.lang.String qName)private ImportControlgetRoot()Returns root ImportControl.private static MismatchStrategygetStrategyForImportControl(org.xml.sax.Attributes attributes)Utility to get a strategyOnMismatch property for "import-control" tag.private static MismatchStrategygetStrategyForSubpackage(org.xml.sax.Attributes attributes)Utility to get a strategyOnMismatch property for "subpackage" tag.static ImportControlload(java.net.URI uri)Loads the import control file from a file.private static ImportControlload(org.xml.sax.InputSource source, java.net.URI uri)Loads the import control file from aInputSource.private static java.lang.StringsafeGet(org.xml.sax.Attributes attributes, java.lang.String name)Utility to safely get an attribute.voidstartElement(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 theImportControlobjects.
-
-
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:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin 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:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin 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
ImportControlobject. - 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
ImportControlobject. - Throws:
CheckstyleException- if an error occurs.
-
closeStream
private static void closeStream(java.io.InputStream inputStream) throws CheckstyleExceptionThis 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
ImportControlobject 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.SAXExceptionUtility 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.
-
-