Package org.ldaptive.referral
Class AbstractFollowReferralHandler<Q extends Request,S extends Result>
java.lang.Object
org.ldaptive.transport.MessageFunctional<Q,S>
org.ldaptive.transport.MessageFunctional.Function<Q,S,S,S>
org.ldaptive.referral.AbstractFollowReferralHandler<Q,S>
- Type Parameters:
Q
- type of requestS
- type of result
- All Implemented Interfaces:
Function<S,
S>
- Direct Known Subclasses:
FollowSearchReferralHandler
,FollowSearchResultReferenceHandler
public abstract class AbstractFollowReferralHandler<Q extends Request,S extends Result>
extends MessageFunctional.Function<Q,S,S,S>
Common implementation of referral handling.
-
Nested Class Summary
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ReferralConnectionFactory
Referral connection factory.protected static final int
Default referral limit.protected final org.slf4j.Logger
Logger for this class.protected final int
Referral depth.protected final int
Referral limit. -
Constructor Summary
ConstructorsConstructorDescriptionAbstractFollowReferralHandler
(int limit, int depth, ReferralConnectionFactory factory) Creates a new abstract referral handler. -
Method Summary
Modifier and TypeMethodDescriptioncreateReferralOperation
(ConnectionFactory factory) Creates an operation for this type of referral.protected abstract Q
Creates a new request for this type of referral.protected S
followReferral
(String[] referralUrls) Follows the supplied referral URLs in order until a SUCCESS or REFERRAL_LIMIT_EXCEEDED occurs.Returns the referral connection factory.int
Returns the referral depth of this handler.int
Returns the maximum number of referrals to follow.Methods inherited from class org.ldaptive.transport.MessageFunctional
getConnection, getHandle, getRequest, setConnection, setHandle, setRequest
-
Field Details
-
DEFAULT_REFERRAL_LIMIT
protected static final int DEFAULT_REFERRAL_LIMITDefault referral limit. Value is 10.- See Also:
-
logger
protected final org.slf4j.Logger loggerLogger for this class. -
referralLimit
protected final int referralLimitReferral limit. -
referralDepth
protected final int referralDepthReferral depth. -
connectionFactory
Referral connection factory.
-
-
Constructor Details
-
AbstractFollowReferralHandler
Creates a new abstract referral handler.- Parameters:
limit
- number of referrals to followdepth
- number of referrals followedfactory
- referral connection factory
-
-
Method Details
-
getReferralLimit
public int getReferralLimit()Returns the maximum number of referrals to follow.- Returns:
- referral limit
-
getReferralDepth
public int getReferralDepth()Returns the referral depth of this handler.- Returns:
- referral depth
-
getReferralConnectionFactory
Returns the referral connection factory.- Returns:
- referral connection factory
-
createReferralRequest
Creates a new request for this type of referral.- Parameters:
url
- of the referral- Returns:
- new request
-
createReferralOperation
Creates an operation for this type of referral.- Parameters:
factory
- to get a connection with- Returns:
- new operation
-
followReferral
Follows the supplied referral URLs in order until a SUCCESS or REFERRAL_LIMIT_EXCEEDED occurs. If neither of those conditions occurs this method returns null.- Parameters:
referralUrls
- produced by the request- Returns:
- referral response
-
apply
-