| | |
| | | * |
| | | * |
| | | * Copyright 2009-2010 Sun Microsystems, Inc. |
| | | * Portions copyright 2011 ForgeRock AS. |
| | | * Portions copyright 2011-2013 ForgeRock AS. |
| | | */ |
| | | |
| | | package com.forgerock.opendj.ldap; |
| | |
| | | import org.forgerock.opendj.ldap.IntermediateResponseHandler; |
| | | import org.forgerock.opendj.ldap.ResultCode; |
| | | import org.forgerock.opendj.ldap.SearchResultHandler; |
| | | import org.forgerock.opendj.ldap.controls.PersistentSearchRequestControl; |
| | | import org.forgerock.opendj.ldap.requests.SearchRequest; |
| | | import org.forgerock.opendj.ldap.responses.Responses; |
| | | import org.forgerock.opendj.ldap.responses.Result; |
| | |
| | | */ |
| | | final class LDAPSearchFutureResultImpl extends AbstractLDAPFutureResultImpl<Result> implements |
| | | SearchResultHandler { |
| | | |
| | | private SearchResultHandler searchResultHandler; |
| | | |
| | | private final SearchRequest request; |
| | | private final boolean isPersistentSearch; |
| | | |
| | | LDAPSearchFutureResultImpl(final int requestID, final SearchRequest request, |
| | | final SearchResultHandler resultHandler, |
| | |
| | | super(requestID, resultHandler, intermediateResponseHandler, connection); |
| | | this.request = request; |
| | | this.searchResultHandler = resultHandler; |
| | | this.isPersistentSearch = request.containsControl(PersistentSearchRequestControl.OID); |
| | | } |
| | | |
| | | public boolean handleEntry(final SearchResultEntry entry) { |
| | |
| | | return request; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | Result newErrorResult(final ResultCode resultCode, final String diagnosticMessage, |
| | | final Throwable cause) { |
| | | return Responses.newResult(resultCode).setDiagnosticMessage(diagnosticMessage).setCause( |
| | | cause); |
| | | } |
| | | |
| | | /** |
| | | * Persistent searches should not time out. |
| | | */ |
| | | @Override |
| | | boolean checkForTimeout() { |
| | | return !isPersistentSearch; |
| | | } |
| | | } |