public Database getDatabase(final boolean evictCache) { if (!evictCache && cachedIntrospections.contains(lastDatabase)) { for (final Database database : cachedIntrospections) { if (database.equals(lastDatabase)) { return lastDatabase; } } } if (evictCache && cachedIntrospections.contains(lastDatabase)) { cachedIntrospections.remove(lastDatabase); } final String dbreXmlPath = getDbreXmlPath(); if (StringUtils.isBlank(dbreXmlPath) || !fileManager.exists(dbreXmlPath)) { return null; } Database database = null; InputStream inputStream = null; try { inputStream = fileManager.getInputStream(dbreXmlPath); database = DatabaseXmlUtils.readDatabase(inputStream); cacheDatabase(database); return database; } catch (final Exception e) { throw new IllegalStateException(e); } finally { IOUtils.closeQuietly(inputStream); } }
public void writeDatabase(final Database database) { final Document document = DatabaseXmlUtils.getDatabaseDocument(database); fileManager.createOrUpdateTextFileIfRequired( getDbreXmlPath(), XmlUtils.nodeToString(document), true); }