@@ -32,7 +32,6 @@ public abstract class ReadPreference {
3232 * @return <code>true</code> if this preference allows reads or commands from secondary nodes
3333 */
3434 public abstract boolean isSlaveOk ();
35- abstract ReplicaSetNode getNode (ReplicaSetStatus .ReplicaSet set );
3635
3736 /**
3837 * @return <code>DBObject</code> representation of this preference
@@ -46,6 +45,8 @@ public abstract class ReadPreference {
4645 */
4746 public abstract String getName ();
4847
48+ abstract ReplicaSetNode getNode (ReplicaSetStatus .ReplicaSet set );
49+
4950 /**
5051 * Preference to read from primary only.
5152 * Cannot be combined with tags.
@@ -172,14 +173,14 @@ private DBObject[] getRemainingMaps(final List<DBObject> maps) {
172173 * @return ReadPreference which reads from primary only
173174 */
174175 public static ReadPreference primary () {
175- return PRIMARY ;
176+ return _PRIMARY ;
176177 }
177178
178179 /**
179180 * @return ReadPreference which reads primary if available.
180181 */
181182 public static ReadPreference primaryPreferred () {
182- return PRIMARY_PREFERRED ;
183+ return _PRIMARY_PREFERRED ;
183184 }
184185
185186 /**
@@ -193,7 +194,7 @@ public static TaggableReadPreference primaryPreferred(DBObject firstTagSet, DBOb
193194 * @return ReadPreference which reads secondary.
194195 */
195196 public static ReadPreference secondary () {
196- return SECONDARY ;
197+ return _SECONDARY ;
197198 }
198199
199200 /**
@@ -207,7 +208,7 @@ public static TaggableReadPreference secondary(DBObject firstTagSet, DBObject...
207208 * @return ReadPreference which reads secondary if available, otherwise from primary.
208209 */
209210 public static ReadPreference secondaryPreferred () {
210- return SECONDARY_PREFERRED ;
211+ return _SECONDARY_PREFERRED ;
211212 }
212213
213214 /**
@@ -221,7 +222,7 @@ public static TaggableReadPreference secondaryPreferred(DBObject firstTagSet, DB
221222 * @return ReadPreference which reads nearest node.
222223 */
223224 public static ReadPreference nearest () {
224- return NEAREST ;
225+ return _NEAREST ;
225226 }
226227
227228 public static ReadPreference valueOf (String name ) {
@@ -231,20 +232,20 @@ public static ReadPreference valueOf(String name) {
231232
232233 name = name .toLowerCase ();
233234
234- if (name .equals (PRIMARY .getName ().toLowerCase ())) {
235- return PRIMARY ;
235+ if (name .equals (_PRIMARY .getName ().toLowerCase ())) {
236+ return _PRIMARY ;
236237 }
237- if (name .equals (SECONDARY .getName ().toLowerCase ())) {
238- return SECONDARY ;
238+ if (name .equals (_SECONDARY .getName ().toLowerCase ())) {
239+ return _SECONDARY ;
239240 }
240- if (name .equals (SECONDARY_PREFERRED .getName ().toLowerCase ())) {
241- return SECONDARY_PREFERRED ;
241+ if (name .equals (_SECONDARY_PREFERRED .getName ().toLowerCase ())) {
242+ return _SECONDARY_PREFERRED ;
242243 }
243- if (name .equals (PRIMARY_PREFERRED .getName ().toLowerCase ())) {
244- return PRIMARY_PREFERRED ;
244+ if (name .equals (_PRIMARY_PREFERRED .getName ().toLowerCase ())) {
245+ return _PRIMARY_PREFERRED ;
245246 }
246- if (name .equals (NEAREST .getName ().toLowerCase ())) {
247- return NEAREST ;
247+ if (name .equals (_NEAREST .getName ().toLowerCase ())) {
248+ return _NEAREST ;
248249 }
249250
250251 throw new IllegalArgumentException ("No match for read preference of " + name );
@@ -257,54 +258,73 @@ public static TaggableReadPreference valueOf(String name, DBObject firstTagSet,
257258
258259 name = name .toLowerCase ();
259260
260- if (name .equals (SECONDARY .getName ().toLowerCase ())) {
261+ if (name .equals (_SECONDARY .getName ().toLowerCase ())) {
261262 return new TaggableReadPreference .SecondaryReadPreference (firstTagSet , remainingTagSets );
262263 }
263- if (name .equals (SECONDARY_PREFERRED .getName ().toLowerCase ())) {
264+ if (name .equals (_SECONDARY_PREFERRED .getName ().toLowerCase ())) {
264265 return new TaggableReadPreference .SecondaryPreferredReadPreference (firstTagSet , remainingTagSets );
265266 }
266- if (name .equals (PRIMARY_PREFERRED .getName ().toLowerCase ())) {
267+ if (name .equals (_PRIMARY_PREFERRED .getName ().toLowerCase ())) {
267268 return new TaggableReadPreference .PrimaryPreferredReadPreference (firstTagSet , remainingTagSets );
268269 }
269- if (name .equals (NEAREST .getName ().toLowerCase ())) {
270+ if (name .equals (_NEAREST .getName ().toLowerCase ())) {
270271 return new TaggableReadPreference .NearestReadPreference (firstTagSet , remainingTagSets );
271272 }
272273
273274 throw new IllegalArgumentException ("No match for read preference of " + name );
274275 }
275276
276-
277-
278-
279277 /**
280278 * @return ReadPreference which reads nearest node respective of tags.
281279 */
282280 public static TaggableReadPreference nearest (DBObject firstTagSet , DBObject ... remainingTagSets ) {
283281 return new TaggableReadPreference .NearestReadPreference (firstTagSet , remainingTagSets );
284282 }
285283
286- public static ReadPreference PRIMARY = new PrimaryReadPreference ();
287- public static ReadPreference SECONDARY = new TaggableReadPreference .SecondaryReadPreference ();
284+ /**
285+ * A primary read preference. Equivalent to calling {@code ReadPreference.primary()}.
286+ *
287+ * @see com.mongodb.ReadPreference#primary()
288+ * @deprecated As of release 2.9.0, replaced by {@code ReadPreference.primary()}
289+ */
290+ @ Deprecated
291+ public static final ReadPreference PRIMARY = new PrimaryReadPreference ();
288292
289293 /**
290- * @deprecated As of release 2.9, replaced by
291- * <code>ReadPreference.secondaryPreferred(DBObject firstTagSet, DBObject... remainingTagSets)</code>
294+ * A secondary-preferred read preference. Equivalent to calling
295+ * {@code ReadPreference.secondaryPreferred}. This reference should really have been called
296+ * {@code ReadPreference.SECONDARY_PREFERRED}, but the naming of it preceded the idea of distinguishing
297+ * between secondary and secondary-preferred, so for backwards compatibility, leaving the name as is with
298+ * the behavior as it was when it was created.
299+ *
300+ * @see com.mongodb.ReadPreference#secondary()
301+ * @see com.mongodb.ReadPreference#secondaryPreferred()
302+ * @deprecated As of release 2.9.0, replaced by {@code ReadPreference.secondaryPreferred()}
303+ */
304+ @ Deprecated
305+ public static final ReadPreference SECONDARY = new TaggableReadPreference .SecondaryPreferredReadPreference ();
306+
307+ /**
308+ * @deprecated As of release 2.9.0, replaced by
309+ * {@code ReadPreference.secondaryPreferred(DBObject firstTagSet, DBObject... remainingTagSets)}
292310 */
293311 @ Deprecated
294312 public static ReadPreference withTags (Map <String , String > tags ) {
295313 return new TaggedReadPreference ( tags );
296314 }
297315
298316 /**
299- * @deprecated As of release 2.9, replaced by
300- * < code> ReadPreference.secondaryPreferred(DBObject firstTagSet, DBObject... remainingTagSets)</code>
317+ * @deprecated As of release 2.9.0 , replaced by
318+ * {@ code ReadPreference.secondaryPreferred(DBObject firstTagSet, DBObject... remainingTagSets)}
301319 */
302320 @ Deprecated
303321 public static ReadPreference withTags ( final DBObject tags ) {
304322 return new TaggedReadPreference ( tags );
305323 }
306324
307- private static final ReadPreference SECONDARY_PREFERRED = new TaggableReadPreference .SecondaryPreferredReadPreference ();
308- private static final ReadPreference PRIMARY_PREFERRED = new TaggableReadPreference .PrimaryPreferredReadPreference ();
309- private static final ReadPreference NEAREST = new TaggableReadPreference .NearestReadPreference ();
325+ private static final ReadPreference _PRIMARY = new PrimaryReadPreference ();
326+ private static final ReadPreference _SECONDARY = new TaggableReadPreference .SecondaryReadPreference ();
327+ private static final ReadPreference _SECONDARY_PREFERRED = new TaggableReadPreference .SecondaryPreferredReadPreference ();
328+ private static final ReadPreference _PRIMARY_PREFERRED = new TaggableReadPreference .PrimaryPreferredReadPreference ();
329+ private static final ReadPreference _NEAREST = new TaggableReadPreference .NearestReadPreference ();
310330}
0 commit comments