public boolean canLoad(OWLOntologyDocumentSource documentSource) { if (documentSource.isReaderAvailable()) { return true; } if (documentSource.isInputStreamAvailable()) { return true; } if (parsableSchemes.contains(documentSource.getDocumentIRI().getScheme())) { return true; } // If we can open an input stream then we can attempt to parse the ontology // TODO: Take into consideration the request type! try { InputStream is = documentSource.getDocumentIRI().toURI().toURL().openStream(); is.close(); return true; } catch (UnknownHostException e) { logger.info("Unknown host: " + e.getMessage()); } catch (MalformedURLException e) { logger.info("Malformed URL: " + e.getMessage()); } catch (FileNotFoundException e) { logger.info("File not found: " + e.getMessage()); } catch (IOException e) { logger.info("IO Exception: " + e.getMessage()); } return false; }
@Override public OWLOntologyFormat parse( OWLOntologyDocumentSource documentSource, OWLOntology ontology, OWLOntologyLoaderConfiguration configuration) throws OWLParserException, IOException, OWLOntologyChangeException, UnloadableImportException { Reader reader = null; InputStream is = null; try { OWLFunctionalSyntaxParser parser; if (documentSource.isReaderAvailable()) { reader = documentSource.getReader(); parser = new OWLFunctionalSyntaxParser(reader); } else if (documentSource.isInputStreamAvailable()) { is = documentSource.getInputStream(); parser = new OWLFunctionalSyntaxParser(is); } else { is = getInputStream(documentSource.getDocumentIRI(), configuration); parser = new OWLFunctionalSyntaxParser(is); } parser.setUp(ontology, configuration); return parser.parse(); } catch (ParseException e) { throw new OWLParserException( e.getMessage(), e, e.currentToken.beginLine, e.currentToken.beginColumn); } finally { if (is != null) { is.close(); } else if (reader != null) { reader.close(); } } }
@Test public void shouldTestInterfaceOWLOntologyDocumentSource() throws Exception { OWLOntologyDocumentSource testSubject0 = mock(OWLOntologyDocumentSource.class); InputStream result0 = testSubject0.getInputStream(); boolean result1 = testSubject0.isReaderAvailable(); Reader result2 = testSubject0.getReader(); boolean result3 = testSubject0.isInputStreamAvailable(); IRI result4 = testSubject0.getDocumentIRI(); }