Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package org.immutables.fixture.subpack;
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Range;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import java.lang.annotation.ElementType;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.annotation.CheckReturnValue;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;
import javax.annotation.concurrent.NotThreadSafe;
import javax.annotation.concurrent.ThreadSafe;
import org.bson.codecs.Encoder;
import org.bson.codecs.configuration.CodecRegistry;
import org.bson.conversions.Bson;
import org.immutables.mongo.concurrent.FluentFuture;
import org.immutables.mongo.repository.Repositories;
import org.immutables.mongo.repository.RepositorySetup;
import org.immutables.mongo.repository.internal.Constraints;
import org.immutables.mongo.repository.internal.Support;
import org.immutables.value.Generated;
/**
* A {@code SillySubstructureRepository} provides type-safe access for storing and retrieving documents
* from the MongoDB collection {@code "sillySubstructure"}.
*/
@Generated(from = "SillySubstructure", generator = "Repositories")
@SuppressWarnings({"all"})
@ParametersAreNonnullByDefault
@javax.annotation.processing.Generated("org.immutables.processor.ProxyProcessor")
@ThreadSafe
public class SillySubstructureRepository extends Repositories.Repository {
private static final String DOCUMENT_COLLECTION_NAME = "sillySubstructure";
private final Serialization serialization;
private final Criteria anyCriteria;
/**
* Constructs a {@link SillySubstructure} repository using {@link RepositorySetup configuration}.
* @param configuration The repository configuration
*/
public SillySubstructureRepository(RepositorySetup configuration) {
super(configuration, DOCUMENT_COLLECTION_NAME, SillySubstructure.class);
this.serialization = new Serialization(codecRegistry(), fieldNamingStrategy());
this.anyCriteria = new Criteria(this.serialization, Constraints.nilConstraint());
}
/**
* Inserts a single document into the collection.
* @param document The sillySubstructure to insert
* @return A future representing the number of inserted documents (1) if WriteConcern allows the insertion.
*/
public FluentFuture insert(SillySubstructure document) {
return super.doInsert(ImmutableList.of(document));
}
/**
* Insert documents into the collection.
* @param documents The documents to insert
* @return A future representing the number of inserted documents if WriteConcern allows the insertion.
*/
public FluentFuture insert(Iterable extends SillySubstructure> documents) {
return super.doInsert(ImmutableList.copyOf(documents));
}
/**
* Finds all documents. Use the returned {@link Finder} object to complete
* {@link Finder#fetchAll() fetch all} or other operations.
* @return A finder object used to complete operations
*/
@CheckReturnValue
public Finder findAll() {
return find(criteria());
}
/**
* Find documents by the criteria expressed as a JSON string. Use the returned {@link Finder} object to complete
* {@link Finder#fetchAll() fetch} or {@link Finder#fetchFirst() fetch} operations.
* @param jsonCriteria A JSON string for native criteria
* @return A finder object used to complete operations
*/
@CheckReturnValue
public Finder find(String jsonCriteria) {
return new Finder(this, Support.jsonQuery(jsonCriteria));
}
/**
* Find a document by the given {@link SillySubstructureRepository#criteria() criteria}. Use the returned {@link Finder} object to complete
* {@link Finder#fetchAll() fetch} operations.
* You can also use {@link Finder#andModifyFirst() modify} or {@link Finder#deleteFirst() delete}
* operations to update / delete the document(s).
* @param criteria The search criteria
* @return A finder object used to complete operations
*/
@CheckReturnValue
public Finder find(Criteria criteria) {
return new Finder(this, criteria.constraint);
}
/**
* The finder object used to proceed with find operations via the
* {@link Finder#fetchAll()}, {@link Finder#fetchFirst()}, {@link Finder#andModifyFirst()}, or {@link Finder#deleteFirst()} methods.
* Configure exclusion and sort ordering for results using the family of {@code exclude*()} and {@code orderBy*()} attribute-specific methods.
* @see SillySubstructureRepository#find(Criteria)
*/
@Generated(from = "SillySubstructure", generator = "Repositories")
@NotThreadSafe
public static final class Finder extends Repositories.FinderWithDelete {
private final Serialization serialization;
private Finder(SillySubstructureRepository repository, Constraints.ConstraintHost criteria) {
super(repository);
this.criteria = criteria;
this.serialization = repository.serialization;
}
/**
* Order by {@link SillySubstructure#enum1() enum1} in the ascending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#enum1() enum1} attribute using ascending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderByEnum1() {
ordering = ordering.equal(serialization.enum1Name, false, 1);
return this;
}
/**
* Order by {@link SillySubstructure#enum1() enum1} in the descending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#enum1() enum1} attribute using descending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderByEnum1Desceding() {
ordering = ordering.equal(serialization.enum1Name, false, -1);
return this;
}
/**
* Order by {@link SillySubstructure#set2() set2} in the ascending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#set2() set2} attribute using ascending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderBySet2() {
ordering = ordering.equal(serialization.set2Name, false, 1);
return this;
}
/**
* Order by {@link SillySubstructure#set2() set2} in the descending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#set2() set2} attribute using descending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderBySet2Desceding() {
ordering = ordering.equal(serialization.set2Name, false, -1);
return this;
}
/**
* Order by {@link SillySubstructure#set3() set3} in the ascending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#set3() set3} attribute using ascending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderBySet3() {
ordering = ordering.equal(serialization.set3Name, false, 1);
return this;
}
/**
* Order by {@link SillySubstructure#set3() set3} in the descending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#set3() set3} attribute using descending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderBySet3Desceding() {
ordering = ordering.equal(serialization.set3Name, false, -1);
return this;
}
/**
* Order by {@link SillySubstructure#floats4() floats4} in the ascending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#floats4() floats4} attribute using ascending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderByFloats4() {
ordering = ordering.equal(serialization.floats4Name, false, 1);
return this;
}
/**
* Order by {@link SillySubstructure#floats4() floats4} in the descending direction.
* Specify that the next attribute to sort will be the {@link SillySubstructure#floats4() floats4} attribute using descending order
* in the the chain of comparisons performed to sort results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder orderByFloats4Desceding() {
ordering = ordering.equal(serialization.floats4Name, false, -1);
return this;
}
/**
* Exclude the {@link SillySubstructure#set2() set2} attribute from each document in the results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder excludeSet2() {
exclusion = exclusion.equal(serialization.set2Name, false, -1);
return this;
}
/**
* Exclude the {@link SillySubstructure#set3() set3} attribute from each document in the results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder excludeSet3() {
exclusion = exclusion.equal(serialization.set3Name, false, -1);
return this;
}
/**
* Exclude the {@link SillySubstructure#floats4() floats4} attribute from each document in the results.
* @return {@code this} finder for use in a chained invocation
*/
public Finder excludeFloats4() {
exclusion = exclusion.equal(serialization.floats4Name, false, -1);
return this;
}
/**
* Turn a find operation into an atomic {@link DBCollection#findAndModify(DBObject, DBObject, DBObject, boolean, DBObject, boolean, boolean) findAndModify}
* operation. Use the family of {@code set*()}, {@code unset*()}, {@code add*()}, {@code remove*()}, {@code put*()}m and {@code init*()}
* (and other attribute-specific) methods to describe the modification.
* @return A modifier object to complete the {@code findAndModify} operation
*/
@CheckReturnValue
public Modifier andModifyFirst() {
return new Modifier((SillySubstructureRepository) repository, criteria, ordering, exclusion);
}
/**
* Used to replace in-place existing version of the document
*/
@CheckReturnValue
public Replacer andReplaceFirst(SillySubstructure document) {
return new Replacer((SillySubstructureRepository) repository, document, criteria, ordering);
}
}
/**
* Update the set of {@code "sillySubstructure"} documents.
* @param criteria The search criteria for update
* @return An updater object that will be used to complete the update.
*/
@CheckReturnValue
public Updater update(Criteria criteria) {
return new Updater(this, criteria);
}
/**
* {@link #update(Criteria) Given} the criteria updater describes how to perform
* update operations on sets of documents.
*/
@Generated(from = "SillySubstructure", generator = "Repositories")
@NotThreadSafe
public static final class Updater extends Repositories.Updater {
private final Serialization serialization;
private Updater(SillySubstructureRepository repository, Criteria criteria) {
super(repository);
this.criteria = criteria.constraint;
this.serialization = repository.serialization;
}
/**
* Specify a new value for the {@code enum1} attribute.
*
* Corresponds to the MongoDB {@code $set} operator.
* @param value A new value for the {@code enum1} attribute
* @return {@code this} updater to be used to complete the update operation
*/
public Updater setEnum1(RetentionPolicy value) {
setFields = setFields.equal(serialization.enum1Name, false, Support.writable(serialization.enum1Encoder, value));
return this;
}
/**
* Specify an initial value for the {@code enum1} attribute. The value will be used if the document is
* to be inserted. If one or more documents are found for an update, this value will not be used.
*
* Corresponds to the MongoDB {@code $setOnInsert} operator.
* @param value The {@code enum1} value for an insert.
* @return {@code this} updater to be used to complete the update operation
*/
public Updater initEnum1(RetentionPolicy value) {
setOnInsertFields = setOnInsertFields.equal(serialization.enum1Name, false, Support.writable(serialization.enum1Encoder, value));
return this;
}
/**
* Clear the {@code set2} set attribute.
*
* Corresponds to the MongoDB {@code $set} operator resetting to empty array
* @return {@code this} updater to be used to complete the update operation
*/
public Updater clearSet2() {
setFields = setFields.equal(serialization.set2Name, false, ImmutableList.