/** * Find a file database by its name * * @param name of the file database. * @return the found file database or null if none exists. */ public DefaultFileDatabase getFileDatabase(String name) { DefaultFileDatabase db = null; boolean found = false; Iterator<DefaultFileDatabase> iter = fileDatabases.iterator(); while (iter.hasNext() && !found) { DefaultFileDatabase temp = iter.next(); if (temp.getName().equals(name)) { found = true; db = temp; } } return db; }
/** * Helper method to delete a file Database. * * @param name the name of the database to delete * @return true if the file datbase is deleted. */ public boolean deleteDatabase(String name) { DefaultFileDatabase fd = getFileDatabase(name.trim()); boolean removed = false; if (fileDatabases.contains(fd)) { FileSystemManager.deleteDirectory(fd.getFullPath()); if (!fileDatabases.remove(fd)) { throw new IllegalStateException( "Folder was deleted from file system" + "but file database " + fd.getName() + " could not be removed from database server"); } else { removed = true; } } return removed; }
/** * Create a new file database with the specified name and unique folder name. * * @param displayName name displayed to the user * @param name of the file database used when creating the dabase in the file system. * @param path of the file database * @return the created file database * @throws LocationAlreadyExistsException - if the location already exists */ public DefaultFileDatabase createFileDatabase( String displayName, String name, String path, String description) throws LocationAlreadyExistsException { if (path == null) { throw new IllegalStateException("The path cannot be null"); } if (name == null) { throw new IllegalStateException("the name cannot be null"); } // create the new file database DefaultFileDatabase FileDatabaseImpl = new DefaultFileDatabase(); FileDatabaseImpl.setDisplayName(displayName); FileDatabaseImpl.setName(name); FileDatabaseImpl.setPath(path); FileDatabaseImpl.setFileServer(this); // create a folder for this file database FileSystemManager.createDirectory(FileDatabaseImpl.getFullPath()); fileDatabases.add(FileDatabaseImpl); return FileDatabaseImpl; }
/** * Rename the file database. * * @param oldName - old name of the file database * @param name - new name to give the file database. * @return true if the the file database is renamed. */ public boolean renameFileDatabase(String currentName, String newName) { boolean renamed = false; DefaultFileDatabase fd = getFileDatabase(currentName); if (fileDatabases.contains(fd)) { // make sure the new folder name does not exist File f = new File(fd.getPath() + newName.trim()); if (!f.exists()) { if (!FileSystemManager.renameFile( new File(fd.getFullPath()), new File(fd.getPath() + newName))) { throw new IllegalStateException("Could not rename file"); } fileDatabases.remove(fd); } fd.setName(newName); fileDatabases.add(fd); renamed = true; } return renamed; }