/** * Loads the import control file from a {@link InputSource}. * * @param source the source to load from. * @param uri uri of the source being loaded. * @return the root {@link PkgControl} object. * @throws CheckstyleException if an error occurs. */ private static PkgControl load(final InputSource source, final URI uri) throws CheckstyleException { try { final ImportControlLoader loader = new ImportControlLoader(); loader.parseInputSource(source); return loader.getRoot(); } catch (final ParserConfigurationException | SAXException ex) { throw new CheckstyleException("unable to parse " + uri + " - " + ex.getMessage(), ex); } catch (final IOException ex) { throw new CheckstyleException("unable to read " + uri, ex); } }
/** * Set the name for the file containing the import control configuration. It will cause the file * to be loaded. * * @param name the name of the file to load. * @throws ConversionException on error loading the file. */ public void setFile(final String name) { // Handle empty param if (StringUtils.isBlank(name)) { return; } try { root = ImportControlLoader.load(new File(name).toURI()); } catch (final CheckstyleException ex) { throw new ConversionException(UNABLE_TO_LOAD + name, ex); } }
/** * Set the parameter for the url containing the import control configuration. It will cause the * url to be loaded. * * @param url the url of the file to load. * @throws ConversionException on error loading the file. */ public void setUrl(final String url) { // Handle empty param if (StringUtils.isBlank(url)) { return; } final URI uri; try { uri = URI.create(url); } catch (final IllegalArgumentException ex) { throw new ConversionException("Syntax error in url " + url, ex); } try { root = ImportControlLoader.load(uri); } catch (final CheckstyleException ex) { throw new ConversionException(UNABLE_TO_LOAD + url, ex); } }
@Test public void testExtraElementInConfig() throws Exception { final PkgControl root = ImportControlLoader.load(new File(getPath("import-control_WithNewElement.xml")).toURI()); assertNotNull(root); }
@Test(expected = CheckstyleException.class) public void testWrongFormatURI() throws Exception { final PkgControl root = ImportControlLoader.load(new URI("aaa://" + getPath("import-control_complete.xml"))); assertNotNull(root); }
@Test public void testLoad() throws CheckstyleException { final PkgControl root = ImportControlLoader.load(new File(getPath("import-control_complete.xml")).toURI()); assertNotNull(root); }