org.mongodb.morphia.query.CountOptions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of morphia Show documentation
Show all versions of morphia Show documentation
Java Object Document Mapper for MongoDB
The newest version!
/*
* Copyright 2016 MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mongodb.morphia.query;
/*
* Copyright 2016 MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.mongodb.ReadConcern;
import com.mongodb.ReadPreference;
import com.mongodb.client.model.Collation;
import com.mongodb.client.model.DBCollectionCountOptions;
import java.util.concurrent.TimeUnit;
import static com.mongodb.assertions.Assertions.notNull;
/**
* The options for a count operation.
*
* @mongodb.driver.manual reference/command/count/ Count
* @since 1.3
*/
public class CountOptions {
private DBCollectionCountOptions options = new DBCollectionCountOptions();
/**
* Sets the collation
*
* @param collation the collation
* @return this
* @mongodb.server.release 3.4
*/
public CountOptions collation(final Collation collation) {
options.collation(collation);
return this;
}
/**
* Returns the collation options
*
* @return the collation options
* @mongodb.server.release 3.4
*/
public Collation getCollation() {
return options.getCollation();
}
/**
* Gets the hint to apply.
*
* @return the hint, which should describe an existing
*/
public String getHint() {
return options.getHintString();
}
/**
* Gets the limit to apply. The default is 0, which means there is no limit.
*
* @return the limit
* @mongodb.driver.manual reference/method/cursor.limit/#cursor.limit Limit
*/
public int getLimit() {
return options.getLimit();
}
/**
* Gets the maximum execution time on the server for this operation. The default is 0, which places no limit on the execution time.
*
* @param timeUnit the time unit to return the result in
* @return the maximum execution time in the given time unit
*/
public long getMaxTime(final TimeUnit timeUnit) {
notNull("timeUnit", timeUnit);
return options.getMaxTime(timeUnit);
}
/**
* Returns the readConcern
*
* @return the readConcern
* @mongodb.server.release 3.2
*/
public ReadConcern getReadConcern() {
return options.getReadConcern();
}
/**
* Returns the readPreference
*
* @return the readPreference
*/
public ReadPreference getReadPreference() {
return options.getReadPreference();
}
/**
* Gets the number of documents to skip. The default is 0.
*
* @return the number of documents to skip
* @mongodb.driver.manual reference/method/cursor.skip/#cursor.skip Skip
*/
public int getSkip() {
return options.getSkip();
}
/**
* Sets the hint to apply.
*
* @param hint the name of the index which should be used for the operation
* @return this
*/
public CountOptions hint(final String hint) {
options.hintString(hint);
return this;
}
/**
* Sets the limit to apply.
*
* @param limit the limit
* @return this
* @mongodb.driver.manual reference/method/cursor.limit/#cursor.limit Limit
*/
public CountOptions limit(final int limit) {
options.limit(limit);
return this;
}
/**
* Sets the maximum execution time on the server for this operation.
*
* @param maxTime the max time
* @param timeUnit the time unit, which may not be null
* @return this
*/
public CountOptions maxTime(final long maxTime, final TimeUnit timeUnit) {
notNull("timeUnit", timeUnit);
options.maxTime(maxTime, timeUnit);
return this;
}
/**
* Sets the readConcern
*
* @param readConcern the readConcern
* @return this
* @mongodb.server.release 3.2
*/
public CountOptions readConcern(final ReadConcern readConcern) {
options.readConcern(readConcern);
return this;
}
/**
* Sets the readPreference
*
* @param readPreference the readPreference
* @return this
*/
public CountOptions readPreference(final ReadPreference readPreference) {
options.readPreference(readPreference);
return this;
}
/**
* Sets the number of documents to skip.
*
* @param skip the number of documents to skip
* @return this
* @mongodb.driver.manual reference/method/cursor.skip/#cursor.skip Skip
*/
public CountOptions skip(final int skip) {
options.skip(skip);
return this;
}
DBCollectionCountOptions getOptions() {
return options;
}
}