1 /*
2 * #%L
3 * ComparisonOperator.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.builder;
22
23 import com.allanbank.mongodb.Version;
24
25 /**
26 * ComparisonOperator provides an enumeration of all possible comparison
27 * operators.
28 *
29 * @api.yes This enumeration is part of the driver's API. Public and protected
30 * members will be deprecated for at least 1 non-bugfix release
31 * (version numbers are <major>.<minor>.<bugfix>)
32 * before being removed or modified.
33 * @copyright 2012-2013, Allanbank Consulting, Inc., All Rights Reserved
34 */
35 public enum ComparisonOperator implements Operator {
36 /** The equal operator. Note that this operator does not have a token. */
37 EQUALS(""),
38
39 /** The greater than operator. */
40 GT("$gt"),
41
42 /** The greater than or equal operator. */
43 GTE("$gte"),
44
45 /** The less than operator. */
46 LT("$lt"),
47
48 /** The less than or equal operator. */
49 LTE("$lte"),
50
51 /** The not equal operator. */
52 NE("$ne");
53
54 /** The operator's token to use when sending to the server. */
55 private final String myToken;
56
57 /** The first MongoDB version to support the operator. */
58 private final Version myVersion;
59
60 /**
61 * Creates a new ComparisonOperator.
62 *
63 * @param token
64 * The token to use when sending to the server.
65 */
66 private ComparisonOperator(final String token) {
67 this(token, null);
68 }
69
70 /**
71 * Creates a new ComparisonOperator.
72 *
73 * @param token
74 * The token to use when sending to the server.
75 * @param version
76 * The first MongoDB version to support the operator.
77 */
78 private ComparisonOperator(final String token, final Version version) {
79 myToken = token;
80 myVersion = version;
81 }
82
83 /**
84 * The token for the operator that can be sent to the server.
85 *
86 * @return The token for the operator.
87 */
88 @Override
89 public String getToken() {
90 return myToken;
91 }
92
93 /**
94 * Returns the first MongoDB version to support the operator.
95 *
96 * @return The first MongoDB version to support the operator. If
97 * <code>null</code> then the version is not known and can be
98 * assumed to be all currently supported versions.
99 */
100 @Override
101 public Version getVersion() {
102 return myVersion;
103 }
104
105 }