/driver-reactive-streams/src/test/functional/com/mongodb/reactivestreams/client/syncadapter/SyncFindIterable.java

https://github.com/jyemin/mongo-java-driver · Java · 202 lines · 154 code · 33 blank · 15 comment · 0 complexity · 3e103c6ea11b740db5802944a394aab9 MD5 · raw file

  1. /*
  2. * Copyright 2008-present MongoDB, Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.mongodb.reactivestreams.client.syncadapter;
  17. import com.mongodb.CursorType;
  18. import com.mongodb.ExplainVerbosity;
  19. import com.mongodb.client.FindIterable;
  20. import com.mongodb.client.model.Collation;
  21. import com.mongodb.lang.Nullable;
  22. import com.mongodb.reactivestreams.client.FindPublisher;
  23. import org.bson.BsonValue;
  24. import org.bson.Document;
  25. import org.bson.conversions.Bson;
  26. import reactor.core.publisher.Mono;
  27. import java.util.concurrent.TimeUnit;
  28. import static com.mongodb.ClusterFixture.TIMEOUT_DURATION;
  29. import static java.util.Objects.requireNonNull;
  30. class SyncFindIterable<T> extends SyncMongoIterable<T> implements FindIterable<T> {
  31. private final com.mongodb.reactivestreams.client.FindPublisher<T> wrapped;
  32. SyncFindIterable(final FindPublisher<T> wrapped) {
  33. super(wrapped);
  34. this.wrapped = wrapped;
  35. }
  36. @Override
  37. public FindIterable<T> filter(@Nullable final Bson filter) {
  38. wrapped.filter(filter);
  39. return this;
  40. }
  41. @Override
  42. public FindIterable<T> limit(final int limit) {
  43. wrapped.limit(limit);
  44. return this;
  45. }
  46. @Override
  47. public FindIterable<T> skip(final int skip) {
  48. wrapped.skip(skip);
  49. return this;
  50. }
  51. @Override
  52. public FindIterable<T> maxTime(final long maxTime, final TimeUnit timeUnit) {
  53. wrapped.maxTime(maxTime, timeUnit);
  54. return this;
  55. }
  56. @Override
  57. public FindIterable<T> maxAwaitTime(final long maxAwaitTime, final TimeUnit timeUnit) {
  58. wrapped.maxAwaitTime(maxAwaitTime, timeUnit);
  59. return this;
  60. }
  61. @Override
  62. public FindIterable<T> projection(@Nullable final Bson projection) {
  63. wrapped.projection(projection);
  64. return this;
  65. }
  66. @Override
  67. public FindIterable<T> sort(@Nullable final Bson sort) {
  68. wrapped.sort(sort);
  69. return this;
  70. }
  71. @Override
  72. public FindIterable<T> noCursorTimeout(final boolean noCursorTimeout) {
  73. wrapped.noCursorTimeout(noCursorTimeout);
  74. return this;
  75. }
  76. @Override
  77. @Deprecated
  78. public FindIterable<T> oplogReplay(final boolean oplogReplay) {
  79. wrapped.oplogReplay(oplogReplay);
  80. return this;
  81. }
  82. @Override
  83. public FindIterable<T> partial(final boolean partial) {
  84. wrapped.partial(partial);
  85. return this;
  86. }
  87. @Override
  88. public FindIterable<T> cursorType(final CursorType cursorType) {
  89. wrapped.cursorType(cursorType);
  90. return this;
  91. }
  92. @Override
  93. public FindIterable<T> batchSize(final int batchSize) {
  94. wrapped.batchSize(batchSize);
  95. super.batchSize(batchSize);
  96. return this;
  97. }
  98. @Override
  99. public FindIterable<T> collation(@Nullable final Collation collation) {
  100. wrapped.collation(collation);
  101. return this;
  102. }
  103. @Override
  104. public FindIterable<T> comment(@Nullable final String comment) {
  105. wrapped.comment(comment);
  106. return this;
  107. }
  108. @Override
  109. public FindIterable<T> comment(@Nullable final BsonValue comment) {
  110. wrapped.comment(comment);
  111. return this;
  112. }
  113. @Override
  114. public FindIterable<T> hint(@Nullable final Bson hint) {
  115. wrapped.hint(hint);
  116. return this;
  117. }
  118. @Override
  119. public FindIterable<T> hintString(@Nullable final String hint) {
  120. wrapped.hintString(hint);
  121. return this;
  122. }
  123. @Override
  124. public FindIterable<T> let(@Nullable final Bson variables) {
  125. wrapped.let(variables);
  126. return this;
  127. }
  128. @Override
  129. public FindIterable<T> max(@Nullable final Bson max) {
  130. wrapped.max(max);
  131. return this;
  132. }
  133. @Override
  134. public FindIterable<T> min(@Nullable final Bson min) {
  135. wrapped.min(min);
  136. return this;
  137. }
  138. @Override
  139. public FindIterable<T> returnKey(final boolean returnKey) {
  140. wrapped.returnKey(returnKey);
  141. return this;
  142. }
  143. @Override
  144. public FindIterable<T> showRecordId(final boolean showRecordId) {
  145. wrapped.showRecordId(showRecordId);
  146. return this;
  147. }
  148. @Override
  149. public FindIterable<T> allowDiskUse(@Nullable final java.lang.Boolean allowDiskUse) {
  150. wrapped.allowDiskUse(allowDiskUse);
  151. return this;
  152. }
  153. @Override
  154. public Document explain() {
  155. return requireNonNull(Mono.from(wrapped.explain()).block(TIMEOUT_DURATION));
  156. }
  157. @Override
  158. public Document explain(final ExplainVerbosity verbosity) {
  159. return requireNonNull(Mono.from(wrapped.explain(verbosity)).block(TIMEOUT_DURATION));
  160. }
  161. @Override
  162. public <E> E explain(final Class<E> explainResultClass) {
  163. return requireNonNull(Mono.from(wrapped.explain(explainResultClass)).block(TIMEOUT_DURATION));
  164. }
  165. @Override
  166. public <E> E explain(final Class<E> explainResultClass, final ExplainVerbosity verbosity) {
  167. return requireNonNull(Mono.from(wrapped.explain(explainResultClass, verbosity)).block(TIMEOUT_DURATION));
  168. }
  169. }