Module java4ever.framework
Class Subscriptions.Builder
java.lang.Object
tech.deplant.java4ever.framework.subscription.Subscriptions.Builder
-
Method Summary
Modifier and TypeMethodDescriptionaddCallbackConsumer
(Consumer<com.fasterxml.jackson.databind.JsonNode> callbackConsumer) If set, receives events that pass filters will be immediately consumed with provided Consumer interfaceaddFilterOnConsume
(Predicate<com.fasterxml.jackson.databind.JsonNode> javaFilter) If Java filter is set, event will be received, but will not be consumed until predicate is true.addFilterOnSubscription
(String gqlFilter) If Gql filter is set, event will be received by graphql client only if does meet provided filter requirements.setCallbackToQueue
(boolean doCallbackToQueue) If set, received events that pass filters will be consumed by internal queue object.subscribeUntilCancel
(int contextId) subscribeUntilCondition
(int contextId, Predicate<com.fasterxml.jackson.databind.JsonNode> unsubscribeCondition) subscribeUntilFirst
(int contextId)
-
Method Details
-
addCallbackConsumer
public Subscriptions.Builder addCallbackConsumer(Consumer<com.fasterxml.jackson.databind.JsonNode> callbackConsumer) If set, receives events that pass filters will be immediately consumed with provided Consumer interface- Parameters:
callbackConsumer
- consumer lambda function that handles new JsonNode callback
-
setCallbackToQueue
If set, received events that pass filters will be consumed by internal queue object. You can later retrieve them by calling SubscribeHandle::queue(). -
addFilterOnSubscription
If Gql filter is set, event will be received by graphql client only if does meet provided filter requirements. Gql filter is limited to GraphQL api filters of your endpoint.- Parameters:
gqlFilter
- String representation of GraphQL filter query
-
addFilterOnConsume
public Subscriptions.Builder addFilterOnConsume(Predicate<com.fasterxml.jackson.databind.JsonNode> javaFilter) If Java filter is set, event will be received, but will not be consumed until predicate is true. This filter is not limited by GraphQL endpoint possible filters, but it can take more network bandwidth as it receives all events. It's better to use GraphQL Server filter for most tasks and add Java client-side filter for more complex conditions. You can add any number of filters. -
subscribeUntilCancel
public SubscriptionHandle subscribeUntilCancel(int contextId) throws tech.deplant.java4ever.binding.EverSdkException - Throws:
tech.deplant.java4ever.binding.EverSdkException
-
subscribeUntilFirst
public SubscriptionHandle subscribeUntilFirst(int contextId) throws tech.deplant.java4ever.binding.EverSdkException - Throws:
tech.deplant.java4ever.binding.EverSdkException
-
subscribeUntilCondition
public SubscriptionHandle subscribeUntilCondition(int contextId, Predicate<com.fasterxml.jackson.databind.JsonNode> unsubscribeCondition) throws tech.deplant.java4ever.binding.EverSdkException - Throws:
tech.deplant.java4ever.binding.EverSdkException
-