From 8ef6fa416d975a7a2727f19dba00ed0c0f47f0b9 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 13 Jul 2021 10:10:25 +0200 Subject: [PATCH] Introduce OutboundRow.clone() method. Closes #620. --- .../data/r2dbc/mapping/OutboundRow.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java b/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java index e51023258..9d7cb8b83 100644 --- a/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java +++ b/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java @@ -36,7 +36,7 @@ import org.springframework.util.Assert; * @see SqlIdentifier * @see Parameter */ -public class OutboundRow implements Map { +public class OutboundRow implements Map, Cloneable { private final Map rowAsMap; @@ -61,6 +61,12 @@ public class OutboundRow implements Map { map.forEach((s, Parameter) -> this.rowAsMap.put(SqlIdentifier.unquoted(s), Parameter)); } + private OutboundRow(OutboundRow map) { + + this.rowAsMap = new LinkedHashMap<>(map.size()); + this.rowAsMap.putAll(map); + } + /** * Create a {@link OutboundRow} instance initialized with the given key/value pair. * @@ -137,6 +143,15 @@ public class OutboundRow implements Map { return this.rowAsMap.isEmpty(); } + /* + * (non-Javadoc) + * @see java.lang.Object#clone() + */ + @Override + protected OutboundRow clone() { + return new OutboundRow(this); + } + /* * (non-Javadoc) * @see java.util.Map#containsKey(java.lang.Object)