THRIFT-5742 Add addRange() function to Set helper classes to support adding data from arbitrary enumerable source containers
Client: hx
Patch: Jens Geyer
diff --git a/lib/haxe/src/org/apache/thrift/helper/IntSet.hx b/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
index 91e5d8e..676463b 100644
--- a/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/IntSet.hx
@@ -30,9 +30,7 @@
public function new( values : Array<Int> = null) {
if ( values != null) {
- for ( value in values) {
- add(value);
- }
+ addRange(values.iterator());
}
}
@@ -57,6 +55,14 @@
return true;
}
+ public function addRange( values : Iterator<Int>) {
+ if ( values != null) {
+ for ( value in values) {
+ add(value);
+ }
+ }
+ }
+
public function clear() : Void {
while( _size > 0) {
remove( _elements.keys().next());
diff --git a/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx b/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
index 60e88e4..5a3831c 100644
--- a/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/ObjectSet.hx
@@ -30,9 +30,7 @@
public function new( values : Array<K> = null) {
if ( values != null) {
- for ( value in values) {
- add(value);
- }
+ addRange(values.iterator());
}
}
@@ -57,6 +55,14 @@
return true;
}
+ public function addRange( values : Iterator<K>) {
+ if ( values != null) {
+ for ( value in values) {
+ add(value);
+ }
+ }
+ }
+
public function clear() : Void {
while( _size > 0) {
remove( _elements.keys().next());
diff --git a/lib/haxe/src/org/apache/thrift/helper/StringSet.hx b/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
index b47f868..2c255e6 100644
--- a/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
+++ b/lib/haxe/src/org/apache/thrift/helper/StringSet.hx
@@ -30,9 +30,7 @@
public function new( values : Array<String> = null) {
if ( values != null) {
- for ( value in values) {
- add(value);
- }
+ addRange(values.iterator());
}
}
@@ -57,6 +55,14 @@
return true;
}
+ public function addRange( values : Iterator<String>) {
+ if ( values != null) {
+ for ( value in values) {
+ add(value);
+ }
+ }
+ }
+
public function clear() : Void {
while( _size > 0) {
remove( _elements.keys().next());