org.mongodb.morphia.FindAndModifyOptions 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;
import com.mongodb.DBObject;
import com.mongodb.WriteConcern;
import com.mongodb.client.model.Collation;
import com.mongodb.client.model.DBCollectionFindAndModifyOptions;
import java.util.concurrent.TimeUnit;
import static com.mongodb.assertions.Assertions.notNull;
/**
* The options for find and modify operations.
*
* @since 1.3
*/
public final class FindAndModifyOptions {
private DBCollectionFindAndModifyOptions options = new DBCollectionFindAndModifyOptions()
.returnNew(true);
FindAndModifyOptions copy() {
FindAndModifyOptions copy = new FindAndModifyOptions();
copy.bypassDocumentValidation(getBypassDocumentValidation());
copy.collation(getCollation());
copy.maxTime(getMaxTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS);
copy.projection(getProjection());
copy.remove(isRemove());
copy.returnNew(isReturnNew());
copy.sort(getSort());
copy.update(getUpdate());
copy.upsert(isUpsert());
copy.writeConcern(getWriteConcern());
return copy;
}
DBCollectionFindAndModifyOptions getOptions() {
return copy().options;
}
DBObject getProjection() {
return options.getProjection();
}
FindAndModifyOptions projection(final DBObject projection) {
options.projection(projection);
return this;
}
/**
* Returns the sort
*
* @return the sort
*/
DBObject getSort() {
return options.getSort();
}
/**
* Sets the sort
*
* @param sort the sort
* @return this
*/
FindAndModifyOptions sort(final DBObject sort) {
options.sort(sort);
return this;
}
/**
* Returns the remove
*
* @return the remove
*/
public boolean isRemove() {
return options.isRemove();
}
/**
* Indicates whether to remove the elements matching the query or not
*
* @param remove true if the matching elements should be deleted
* @return this
*/
public FindAndModifyOptions remove(final boolean remove) {
options.remove(remove);
return this;
}
/**
* Returns the update
*
* @return the update
*/
DBObject getUpdate() {
return options.getUpdate();
}
/**
* Sets the update
*
* @param update the update
* @return this
*/
FindAndModifyOptions update(final DBObject update) {
options.update(update);
return this;
}
/**
* Returns the upsert
*
* @return the upsert
*/
public boolean isUpsert() {
return options.isUpsert();
}
/**
* Indicates that an upsert should be performed
*
* @param upsert the upsert
* @return this
* @mongodb.driver.manual reference/method/db.collection.update/#upsert-behavior upsert
*/
public FindAndModifyOptions upsert(final boolean upsert) {
options.upsert(upsert);
return this;
}
/**
* Returns the returnNew
*
* @return the returnNew
*/
public boolean isReturnNew() {
return options.returnNew();
}
/**
* Sets the returnNew
*
* @param returnNew the returnNew
* @return this
*/
public FindAndModifyOptions returnNew(final boolean returnNew) {
options.returnNew(returnNew);
return this;
}
/**
* Returns the bypassDocumentValidation
*
* @return the bypassDocumentValidation
*/
public Boolean getBypassDocumentValidation() {
return options.getBypassDocumentValidation();
}
/**
* Sets the bypassDocumentValidation
*
* @param bypassDocumentValidation the bypassDocumentValidation
* @return this
*/
public FindAndModifyOptions bypassDocumentValidation(final Boolean bypassDocumentValidation) {
options.bypassDocumentValidation(bypassDocumentValidation);
return this;
}
/**
* 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
* @mongodb.driver.manual reference/method/cursor.maxTimeMS/#cursor.maxTimeMS Max Time
*/
public long getMaxTime(final TimeUnit timeUnit) {
notNull("timeUnit", timeUnit);
return options.getMaxTime(timeUnit);
}
/**
* 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
* @mongodb.driver.manual reference/method/cursor.maxTimeMS/#cursor.maxTimeMS Max Time
*/
public FindAndModifyOptions maxTime(final long maxTime, final TimeUnit timeUnit) {
options.maxTime(maxTime, timeUnit);
return this;
}
/**
* Returns the writeConcern
*
* @return the writeConcern
* @mongodb.server.release 3.2
*/
public WriteConcern getWriteConcern() {
return options.getWriteConcern();
}
/**
* Sets the writeConcern
*
* @param writeConcern the writeConcern
* @return this
* @mongodb.server.release 3.2
*/
public FindAndModifyOptions writeConcern(final WriteConcern writeConcern) {
options.writeConcern(writeConcern);
return this;
}
/**
* Returns the collation options
*
* @return the collation options
* @mongodb.server.release 3.4
*/
public Collation getCollation() {
return options.getCollation();
}
/**
* Sets the collation
*
* @param collation the collation
* @return this
* @mongodb.server.release 3.4
*/
public FindAndModifyOptions collation(final Collation collation) {
options.collation(collation);
return this;
}
}