@Override public Page<Database> listDatabases(String instanceId, ListOption... options) { final String instanceName = getInstanceName(instanceId); final Options listOptions = Options.fromListOptions(options); Preconditions.checkArgument( !listOptions.hasFilter(), "Filter option is not support by" + "listDatabases"); final int pageSize = listOptions.hasPageSize() ? listOptions.pageSize() : 0; PageFetcher<Database, com.google.spanner.admin.database.v1.Database> pageFetcher = new PageFetcher<Database, com.google.spanner.admin.database.v1.Database>() { @Override public Paginated<com.google.spanner.admin.database.v1.Database> getNextPage( String nextPageToken) { return rpc.listDatabases(instanceName, pageSize, nextPageToken); } @Override public Database fromProto(com.google.spanner.admin.database.v1.Database proto) { return Database.fromProto(proto, DatabaseAdminClientImpl.this); } }; if (listOptions.hasPageToken()) { pageFetcher.nextPageToken = listOptions.pageToken(); } return pageFetcher.getNextPage(); }
@Override public Page<Database> listDatabases(String instanceId, ListOption... options) { final String instanceName = getInstanceName(instanceId); final Options listOptions = Options.fromListOptions(options); Preconditions.checkArgument( !listOptions.hasFilter(), "Filter option is not support by" + "listDatabases"); final int pageSize = listOptions.hasPageSize() ? listOptions.pageSize() : 0; PageFetcher<Database, com.google.spanner.admin.database.v1.Database> pageFetcher = new PageFetcher<Database, com.google.spanner.admin.database.v1.Database>() { @Override public Paginated<com.google.spanner.admin.database.v1.Database> getNextPage( String nextPageToken) { return rpc.listDatabases(instanceName, pageSize, nextPageToken); } @Override public Database fromProto(com.google.spanner.admin.database.v1.Database proto) { return Database.fromProto(proto, DatabaseAdminClientImpl.this); } }; if (listOptions.hasPageToken()) { pageFetcher.nextPageToken = listOptions.pageToken(); } return pageFetcher.getNextPage(); }
@Override public OperationFuture<Database, CreateDatabaseMetadata> createDatabase( String instanceId, String databaseId, Iterable<String> statements) throws SpannerException { // CreateDatabase() is not idempotent, so we're not retrying this request. String instanceName = getInstanceName(instanceId); String createStatement = "CREATE DATABASE `" + databaseId + "`"; OperationFuture<com.google.spanner.admin.database.v1.Database, CreateDatabaseMetadata> rawOperationFuture = rpc.createDatabase(instanceName, createStatement, statements); return new OperationFutureImpl<Database, CreateDatabaseMetadata>( rawOperationFuture.getPollingFuture(), rawOperationFuture.getInitialFuture(), new ApiFunction<OperationSnapshot, Database>() { @Override public Database apply(OperationSnapshot snapshot) { return Database.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.database.v1.Database.class) .apply(snapshot), DatabaseAdminClientImpl.this); } }, ProtoOperationTransformers.MetadataTransformer.create(CreateDatabaseMetadata.class), new ApiFunction<Exception, Database>() { @Override public Database apply(Exception e) { throw SpannerExceptionFactory.newSpannerException(e); } }); }
@Override public OperationFuture<Database, CreateDatabaseMetadata> createDatabase( String instanceId, String databaseId, Iterable<String> statements) throws SpannerException { // CreateDatabase() is not idempotent, so we're not retrying this request. String instanceName = getInstanceName(instanceId); String createStatement = "CREATE DATABASE `" + databaseId + "`"; OperationFuture<com.google.spanner.admin.database.v1.Database, CreateDatabaseMetadata> rawOperationFuture = rpc.createDatabase(instanceName, createStatement, statements); return new OperationFutureImpl<Database, CreateDatabaseMetadata>( rawOperationFuture.getPollingFuture(), rawOperationFuture.getInitialFuture(), new ApiFunction<OperationSnapshot, Database>() { @Override public Database apply(OperationSnapshot snapshot) { return Database.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.database.v1.Database.class) .apply(snapshot), DatabaseAdminClientImpl.this); } }, ProtoOperationTransformers.MetadataTransformer.create(CreateDatabaseMetadata.class), new ApiFunction<Exception, Database>() { @Override public Database apply(Exception e) { throw SpannerExceptionFactory.newSpannerException(e); } }); }