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 ReferralConnectionFactoryReferral connection factory.protected static final intDefault referral limit.protected final org.slf4j.LoggerLogger for this class.protected final intReferral depth.protected final intReferral 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 QCreates a new request for this type of referral.protected SfollowReferral(String[] referralUrls) Follows the supplied referral URLs in order until a SUCCESS or REFERRAL_LIMIT_EXCEEDED occurs.Returns the referral connection factory.intReturns the referral depth of this handler.intReturns 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
-