public List getDatabases()

in src/main/java/software/aws/glue/tableversions/utils/GlueUtil.java [148:184]


	public List<Database> getDatabases(AWSGlue glue, String homeCatalogId) {
		List<Database> masterDatabaseList = new ArrayList<Database>();
		GetDatabasesRequest getDatabasesRequest = new GetDatabasesRequest();
		GetDatabasesResult getDatabasesResult = glue.getDatabases(getDatabasesRequest);
		List<Database> databaseList = getDatabasesResult.getDatabaseList();
		
		// filter databases that are resource linked
		for (Database database : databaseList) {
			if (!Optional.ofNullable(database.getTargetDatabase()).isPresent()) {
				masterDatabaseList.add(database);
			} else {
				System.out.printf("Database '%s' seems to have resource linked from AWS Account Id: '%s'. So, it will be skipped. \n",
						database.getName(), database.getTargetDatabase().getCatalogId());
			}
		}
		String databaseResultNextToken = getDatabasesResult.getNextToken();
		if (Optional.ofNullable(databaseResultNextToken).isPresent()) {
			do {
				// creating a new GetDatabasesRequest using next token.
				getDatabasesRequest = new GetDatabasesRequest();
				getDatabasesRequest.setNextToken(databaseResultNextToken);
				getDatabasesResult = glue.getDatabases(getDatabasesRequest);
				databaseList = getDatabasesResult.getDatabaseList();
				// filter databases that are resource linked
				for (Database database : databaseList) {
					if (!Optional.ofNullable(database.getTargetDatabase()).isPresent()) {
						masterDatabaseList.add(database);
					} else {
						System.out.printf("Database '%s' seems to have resource linked from AWS Account Id: '%s'. So, it will be skipped. \n",
								database.getName(), database.getTargetDatabase().getCatalogId());
					}
				}
				databaseResultNextToken = getDatabasesResult.getNextToken();
			} while (Optional.ofNullable(databaseResultNextToken).isPresent());
		}
		return masterDatabaseList;
	}