b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle/**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* Copyright (c) 2015 ForgeRock AS. All Rights Reserved
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* The contents of this file are subject to the terms
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* of the Common Development and Distribution License
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* (the License). You may not use this file except in
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* compliance with the License.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* You can obtain a copy of the License at
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* http://forgerock.org/license/CDDLv1.0.html
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* See the License for the specific language governing
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* permission and limitations under the License.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* When distributing Covered Code, include this CDDL
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* Header Notice in each file and include the License file
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* at http://forgerock.org/license/CDDLv1.0.html
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* If applicable, add the following below the CDDL Header,
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* with the fields enclosed by brackets [] replaced by
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* your own identifying information:
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle* "Portions Copyrighted [year] [name of copyright owner]"
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle*/
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienlepackage org.forgerock.openidm.sync.impl;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienleimport java.util.Collection;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienleimport java.util.Iterator;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle/**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Contains an iterator over the recon query results as well as a
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * paging cookie relating to the query.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienlepublic class ReconQueryResult {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * A {@link ResultIterable} containing the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle private ResultIterable resultIterable;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * A {@link String} representing a paging cookie.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle private String pagingCookie;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * A no-argument constructor.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle protected ReconQueryResult() {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.resultIterable = null;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.pagingCookie = null;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * A constructor.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @param resultIterable the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle protected ReconQueryResult(ResultIterable resultIterable) {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.resultIterable = resultIterable;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.pagingCookie = null;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * A constructor.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @param resultIterable the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @param pagingCookie a paging cookie.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle protected ReconQueryResult(ResultIterable resultIterable, String pagingCookie) {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.resultIterable = resultIterable;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.pagingCookie = pagingCookie;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Returns a {@link Collection} of all IDs.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @return a {@link Collection} of all IDs.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public Collection<String> getAllIds() {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle return resultIterable.getAllIds();
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Returns a {@link ResultIterable} containing the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @return a {@link ResultIterable} instance containing the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public ResultIterable getResultIterable() {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle return resultIterable;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Returns an {@link Iterator} over the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @return an {@link Iterator} over the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public Iterator<ResultEntry> getIterator() {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle return resultIterable.iterator();
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public String getPagingCookie() {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle return pagingCookie;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Sets the {@link ResultIterable} containing the query results.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @param resultIterable the {@link ResultIterable} to set.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public void setResultIterable(ResultIterable resultIterable) {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.resultIterable = resultIterable;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle /**
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * Sets the paging cookie.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle *
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle * @param pagingCookie the paging cookie to set.
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle */
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle public void setPagingCookie(String pagingCookie) {
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle this.pagingCookie = pagingCookie;
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle }
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle
b116447d6c5b4bdf9b8dc5f82697d446ec502c76Chad Kienle}