From aaebf6be77b7b60d783f168cc128dcb3694415e1 Mon Sep 17 00:00:00 2001 From: nidhin Date: Wed, 13 Mar 2019 11:34:35 -0400 Subject: [PATCH] feature(RowMetadata)[gh-56]: add getColumnMetadata on RowMetadata Replace Stream with forEach replace foreach with for loop remove unused import change to Collection Change to LinkedHashSet --- .../java/io/r2dbc/spi/test/MockRowMetadata.java | 15 ++++++++++++++- .../src/main/java/io/r2dbc/spi/RowMetadata.java | 11 +++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/r2dbc-spi-test/src/main/java/io/r2dbc/spi/test/MockRowMetadata.java b/r2dbc-spi-test/src/main/java/io/r2dbc/spi/test/MockRowMetadata.java index 46d8d87..f0f552f 100644 --- a/r2dbc-spi-test/src/main/java/io/r2dbc/spi/test/MockRowMetadata.java +++ b/r2dbc-spi-test/src/main/java/io/r2dbc/spi/test/MockRowMetadata.java @@ -19,8 +19,12 @@ import io.r2dbc.spi.ColumnMetadata; import io.r2dbc.spi.RowMetadata; -import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Collection; +import java.util.Set; +import java.util.Collections; +import java.util.ArrayList; public final class MockRowMetadata implements RowMetadata { @@ -50,6 +54,15 @@ public List getColumnMetadatas() { return this.columnMetadatas; } + @Override + public Collection getColumnNames() { + Set columnNames = new LinkedHashSet<>(); + for(ColumnMetadata columnMetadata : columnMetadatas) { + columnNames.add(columnMetadata.getName()); + } + return Collections.unmodifiableCollection(columnNames); + } + @Override public String toString() { return "MockRowMetadata{" + diff --git a/r2dbc-spi/src/main/java/io/r2dbc/spi/RowMetadata.java b/r2dbc-spi/src/main/java/io/r2dbc/spi/RowMetadata.java index 8b85b86..a1dab99 100644 --- a/r2dbc-spi/src/main/java/io/r2dbc/spi/RowMetadata.java +++ b/r2dbc-spi/src/main/java/io/r2dbc/spi/RowMetadata.java @@ -16,6 +16,7 @@ package io.r2dbc.spi; +import java.util.Collection; import java.util.NoSuchElementException; /** @@ -41,4 +42,14 @@ public interface RowMetadata { */ Iterable getColumnMetadatas(); + /** + * Returns an unmodifiable collection of unique column names, and any attempts to modify the returned + * collection, whether direct or via its iterator, result in an {@link UnsupportedOperationException}. + * The order of the column names depends on the actual query and also column name lookup depends on the database + * sorting rules and some databases support escape characters to enforce a particular mode of comparison. + * + * @return the column names. + */ + Collection getColumnNames(); + }