1 /* 2 * #%L 3 * TextCallback.java - mongodb-async-driver - Allanbank Consulting, Inc. 4 * %% 5 * Copyright (C) 2011 - 2014 Allanbank Consulting, Inc. 6 * %% 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * #L% 19 */ 20 21 package com.allanbank.mongodb.client.callback; 22 23 import java.util.ArrayList; 24 import java.util.List; 25 26 import com.allanbank.mongodb.Callback; 27 import com.allanbank.mongodb.MongoIterator; 28 import com.allanbank.mongodb.bson.Document; 29 import com.allanbank.mongodb.builder.ConditionBuilder; 30 import com.allanbank.mongodb.client.SimpleMongoIteratorImpl; 31 32 /** 33 * TextCallback provides conversion from a 34 * {@link com.allanbank.mongodb.builder.Text text} command's result document to 35 * a {@link com.allanbank.mongodb.builder.TextResult}. 36 * 37 * @api.no This class is <b>NOT</b> part of the drivers API. This class may be 38 * mutated in incompatible ways between any two releases of the driver. 39 * @deprecated Support for the {@code text} command was deprecated in the 2.6 40 * version of MongoDB. Use the {@link ConditionBuilder#text(String) 41 * $text} query operator instead. This class will not be removed 42 * until two releases after the MongoDB 2.6 release (e.g. 2.10 if 43 * the releases are 2.8 and 2.10). 44 * @copyright 2013, Allanbank Consulting, Inc., All Rights Reserved 45 */ 46 @Deprecated 47 public class TextCallback implements Callback<MongoIterator<Document>> { 48 49 /** 50 * The delegate callback to receive the 51 * {@link com.allanbank.mongodb.builder.TextResult}s. 52 * 53 * @deprecated Support for the {@code text} command was deprecated in the 54 * 2.6 version of MongoDB. Use the 55 * {@link ConditionBuilder#text(String) $text} query operator 56 * instead. This class will not be removed until two releases 57 * after the MongoDB 2.6 release (e.g. 2.10 if the releases are 58 * 2.8 and 2.10). 59 */ 60 @Deprecated 61 private final Callback<MongoIterator<com.allanbank.mongodb.builder.TextResult>> myDelegate; 62 63 /** 64 * Creates a new TextCallback. 65 * 66 * @param delegate 67 * The delegate callback to receive the 68 * {@link com.allanbank.mongodb.builder.TextResult}s. 69 * @deprecated Support for the {@code text} command was deprecated in the 70 * 2.6 version of MongoDB. Use the 71 * {@link ConditionBuilder#text(String) $text} query operator 72 * instead. This class will not be removed until two releases 73 * after the MongoDB 2.6 release (e.g. 2.10 if the releases are 74 * 2.8 and 2.10). 75 */ 76 @Deprecated 77 public TextCallback( 78 final Callback<MongoIterator<com.allanbank.mongodb.builder.TextResult>> delegate) { 79 myDelegate = delegate; 80 } 81 82 /** 83 * {@inheritDoc} 84 * <p> 85 * Overridden to convert each document into a 86 * {@link com.allanbank.mongodb.builder.TextResult} and forward to the 87 * delegate. 88 * </p> 89 * 90 * @deprecated Support for the {@code text} command was deprecated in the 91 * 2.6 version of MongoDB. Use the 92 * {@link ConditionBuilder#text(String) $text} query operator 93 * instead. This class will not be removed until two releases 94 * after the MongoDB 2.6 release (e.g. 2.10 if the releases are 95 * 2.8 and 2.10). 96 */ 97 @Override 98 @Deprecated 99 public void callback(final MongoIterator<Document> result) { 100 final List<com.allanbank.mongodb.builder.TextResult> results = new ArrayList<com.allanbank.mongodb.builder.TextResult>(); 101 102 for (final Document doc : result) { 103 results.add(new com.allanbank.mongodb.builder.TextResult(doc)); 104 } 105 106 myDelegate 107 .callback(new SimpleMongoIteratorImpl<com.allanbank.mongodb.builder.TextResult>( 108 results)); 109 } 110 111 /** 112 * {@inheritDoc} 113 * <p> 114 * Overridden to forward to the delegate callback. 115 * </p> 116 * 117 * @deprecated Support for the {@code text} command was deprecated in the 118 * 2.6 version of MongoDB. Use the 119 * {@link ConditionBuilder#text(String) $text} query operator 120 * instead. This class will not be removed until two releases 121 * after the MongoDB 2.6 release (e.g. 2.10 if the releases are 122 * 2.8 and 2.10). 123 */ 124 @Override 125 @Deprecated 126 public void exception(final Throwable thrown) { 127 myDelegate.exception(thrown); 128 } 129 }