All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.stormpath.sdk.account.AccountCriteria Maven / Gradle / Ivy

/*
 * Copyright 2013 Stormpath, 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 com.stormpath.sdk.account;

import com.stormpath.sdk.query.Criteria;

/**
 * An {@link Account}-specific {@link Criteria} class, enabling an Account-specific
 * fluentquery DSL.  AccountCriteria instances can be
 * constructed by using the {@link Accounts} utility class, for example:
 * 
 * Accounts.where(Accounts.surname().containsIgnoreCase("Smith"))
 *     .and(Accounts.givenName().eqIgnoreCase("John"))
 *     .orderBySurname().descending()
 *     .withGroups(10, 10)
 *     .offsetBy(50)
 *     .limitTo(25));
 * 
*

Sort Order

*

* All of the {@code orderBy*} methods append an {@code orderBy} clause to the query, ensuring the query results reflect * a particular sort order. *

* The default sort order is always {@code ascending}, but can be changed to {@code descending} by calling the * {@link #descending()} method immediately after the {@code orderBy} method call. For example: *

 * ...criteria.orderByEmail().descending()...
 * 
*

Multiple Order Statements

* You may specify multiple {@code orderBy} clauses and the query results will ordered, reflecting {@code orderBy} * statements in the order they are declared. For example, to order the results first by email (ascending) * and then further by surname (descending), you would chain {@code orderBy} statements: *
 * ...criteria
 *     .orderByEmail()
 *     .orderBySurname().descending()
 *     ...
 * 
* * @since 0.8 */ public interface AccountCriteria extends Criteria, AccountOptions { /** * Ensures that the query results are ordered by account {@link Account#getEmail() email}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderByEmail(); /** * Ensures that the query results are ordered by account {@link Account#getUsername() username}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderByUsername(); /** * Ensures that the query results are ordered by account {@link Account#getGivenName() givenName}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderByGivenName(); /** * Ensures that the query results are ordered by account {@link Account#getMiddleName() middleName}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderByMiddleName(); /** * Ensures that the query results are ordered by account {@link Account#getSurname() surname}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderBySurname(); /** * Ensures that the query results are ordered by account {@link Account#getStatus() status}. *

* Please see the {@link AccountCriteria class-level documentation} for controlling sort order (ascending or * descending) and chaining multiple {@code orderBy} clauses. * * @return this instance for method chaining */ AccountCriteria orderByStatus(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy