class TokenValidateOperationProvider implements Provider<ValidateOperation> {

    public ValidateOperation get() {
        if (issuedTokensPersistedInCTS) {
            return getFunctionalValidateOperation();
        } else {
            return getUnsupportedValidateOperation();
        }
    }

    @Inject  TokenValidateOperationProvider(
            STSPropertiesMBean stsPropertiesMBean,
            TokenStore tokenStore,
            @Named(AMSTSConstants.ISSUED_TOKEN_TYPES) Set<TokenType> validatedTokens,
            TokenOperationFactory operationFactory,
            ThreadLocalAMTokenCache threadLocalAMTokenCache,
            @Named (AMSTSConstants.ISSUED_TOKENS_PERSISTED_IN_CTS) boolean issuedTokensPersistedInCTS);

}